以空格分割字符串赋给数组(str可以是输入参数或echo)和read命令

目录

1. 可以将变量或echo数据直接()赋给数组

2. read命令


1. 可以将变量或echo数据直接()赋给数组

下面分别将字符"1 2 3"和输入参数$1赋给了数组

设该脚本name为test_input2array.sh

运行命令为  

./test_input2array.sh "sd erg wef" sdgf
#!/bin/bash
tmp="1 2 3"
echo $1
echo $2
tmp_array=($tmp)
tmp1_array=($1)
tmp2_array=(`echo $1`) 
#不是tmp2_array=((echo $1))
#也不是tmp2_array=$(echo $1)
#可以分别测试上面这几种情况的结果

echo tmp_array[0]=${tmp_array[0]}
echo tmp_array[1]=${tmp_array[1]}
echo tmp_array[2]=${tmp_array[2]}

echo tmp1_array[0]=${tmp1_array[0]}
echo tmp1_array[1]=${tmp1_array[1]}
echo tmp1_array[2]=${tmp1_array[2]}

echo tmp2_array[0]=${tmp2_array[0]}
echo tmp2_array[1]=${tmp2_array[1]}
echo tmp2_array[2]=${tmp2_array[2]}

则最终打印结果为:

sd erg wef
sdgf
tmp_array[0]=1
tmp_array[1]=2
tmp_array[2]=3
tmp1_array[0]=sd
tmp1_array[1]=erg
tmp1_array[2]=wef
tmp2_array[0]=sd
tmp2_array[1]=erg
tmp2_array[2]=wef

2. read命令

read 命令从标准输入读取,并把输入的内容复制给变量。
命令格式: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name …]

-e在一个交互 shell 中使用 readline 获取行
-r不允许反斜杠转义任何字符
-s隐藏输入
-a array保存为数组,元素以空格分隔
-d delimiter持续读取直到遇到 delimiter 第一个字符退出
-n nchars读取 nchars 个字符返回,而不是等到换行符
-p prompt提示信息
-t timeout等待超时时间,秒
-u fd指定文件描述符号码作为输入,默认是 0
name变量名

#!/bin/bash

read -p "Please input parameter: " Para
echo Para=${Para}
read -p "Please input parameter: " -a Para
echo Para[0]=${Para[0]}
echo Para[1]=${Para[1]}
echo Para[2]=${Para[2]}

运行结果如下图,看出read是需要从键盘即时输入参数的 

./test_input2array_1.sh
Please input parameter: 11 22 33
Para=11 22 33
Please input parameter: 11 22 33
Para[0]=11
Para[1]=22
Para[2]=33

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值