我有一个简单的脚本,其中第一个参数保留用于文件名,所有其他可选参数应传递给脚本的其他部分。
使用Google我找到了这个wiki,但是它提供了一个文字示例:
echo "${@: -1}"
我什么也无法工作,例如:
echo "${@:2}"
要么
echo "${@:2,1}"
我从终端收到“替换错误”。
这是什么问题,我如何处理传递给bash脚本的第一个参数以外的所有参数?
您只使用了默认外壳,在Ubuntu和许多其他Linux上是破折号。在破折号中,“ $ {@:-1}”解释为:{parameter:-word}-使用默认值,如果未定义参数或为null,则使用word。因此,在破折号“ $ {@:-1}”中,结果与“ $ @”完全相同。要使用bash,只需在脚本文件中使用以下第一行:#!/ bin / bash
—
luart 2015年
"{@:2}"
其无法正常工作,这就是为什么正确答案与上面相匹配的原因。