麻烦帮忙看看,关于linux脚本中"${@-'-i'}" 是一个什么写法,见下面!求解释

#!/bin/ksh
export TEREDO_WORMS=ukelele
exec $SHELL "${@-'-i'}"

The "${@-'-i'}" bit means 'if the argument list contains at least one argument, use the original argument list; otherwise, substitute -i for the non-existent arguments'.

守着一只汪
浏览 270回答 2
2回答

绝地无双

$@ 或者 ${@} 会被替换成脚本的输入参数,比如 a.sh 如下内容#!/bin/kshecho "$@"则执行 a.sh 1 2 3 4 ,你会得到1 2 3 4 的打印。${paramter-word} 会被替换成变量 parameter 的值,如果 parameter 不存在,则被替换成 word。所以${@-'-i'} 就会被替换成脚本的输入参数 ,但是如果脚本没有输入参数,则替换成 -i

开心每一天1111

在一些情况下,例如你要把有个变量的值和其他字符串连接起来,就需要用到{},以明示{}中的是一个变量。例如:export var1=ABCexport var2=var1=${var1}.echo $var2最后输出为:var1=ABC.
打开App,查看更多内容
随时随地看视频慕课网APP