我已经在谷歌上寻找了很长一段时间,但找不到任何符合我需要/想要做的事情。
我的目标是编写一个带有两个参数的脚本。它将搜索第一个参数(这是一个列表)并检测第二个参数是否已在其中。例如:
列表 = /bin/foo:/bin/random:随机
添加到列表:/bin/foobar
调用脚本将产生 /bin/foo:/bin/random:random:/bin/foobar 的结果。
如果要添加到列表中的部分已经在列表中,则原始部分不会发生任何更改。
我一切正常,直到我想要修改我传递的参数为止。
...
if [ $RUN = 1 ]; then
echo $1
else
$1="$NEWLIST"
fi
exit 0
然而这产生了一个错误。它说找不到该命令并给我 $1="$NEWLIST" 所在的行号。我在这里做错了什么?如何修改$1?谢谢!
edit:
$ PATH=/opt/bin:$PATH
$ ./scrip.sh PATH /user/opt/bin
$ /opt/bin:/user/opt/bin
这就是我想要的脚本结果。
设置位置参数$1, $2, ...
, 使用set命令:
set foo bar baz
echo "$*" # ==> foo bar baz
echo $1 # ==> foo
set abc def
echo "$*" # ==> abc def
如果要修改一个位置参数而不丢失其他位置参数,请首先将它们存储在数组中:
set foo bar baz
args=( "$@" )
args[1]="BAR"
set "${args[@]}"
echo "$*" # ==> foo BAR baz
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)