#测试shift命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "first argv: $1 : $#"
shift 1
$@="sdasd dd d d d d d d d"
done
比如上面的$@,并不能调整为"sdasd dd d d d d d d d"
...全文
948打赏收藏
shell中无法对输入参数$@的值进行调整
#测试shift命令(x_shift.sh) until [ $# -eq 0 ] do echo "first argv: $1 : $#" shift 1 $@="sdasd dd d d d d d d d" done 比如上面的$@,并不能调整为"sdasd dd d d d d d d d"
[Quote=引用楼主 zhongyunde 的回复:]
#测试shift命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "first argv: $1 : $#"
shift 1
$@="sdasd dd d d d d d d d"
done
比如上面的$@,并不能调整为"sdasd dd d d d d d d d"
[/Quote]
shell程序的参数是你调用程序时,shell根据你命令行的参数建立的,不要自己给他赋值.
拿你的例子来说:
/tmp/ cat test_shift.sh
#测试shift命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "first argv: $1 : $#"
shift 1
done
/tmp/ sh test_shift.sh sdasd dd d d d d d d d
first argv: sdasd : 9
first argv: dd : 8
first argv: d : 7
first argv: d : 6
first argv: d : 5
first argv: d : 4
first argv: d : 3
first argv: d : 2
first argv: d : 1