我想使用命令行参数进行输入。参数将由定界符“;”分隔。我为此编写了以下shell脚本:
arg=$1
echo "Input : $arg"
if [ arg != "" ]; then
echo "input(s) given...."
IFS=';' read -d '' -ra ADDR <<<"$arg"
echo "${ADDR[0]}"
echo "${ADDR[1]}"
echo "${ADDR[2]}"
for i in "${ADDR[@]}"; do
echo "$i"
done
fi
以上所述,当我以./script.sh a;b;c
身份运行时,正在发生以下情况:
(预期:ADDR [0] = a,ADDR [1] = b,addr [2] = c,) 输出:
$ ./script.sh a;b;c
Input : a
input(s) given....
a
a
b: command not found
c: command not found
我在这里做错了什么?显然,$1
不是a; b; c,而只是a
。如何根据我的要求工作?
答案 0 :(得分:1)
;
是用于分隔命令的字符。
尝试:./script.sh 'a;b;c'