我有一个简单的脚本,其中第一个参数是为文件名保留的,所有其他可选参数都应该传递给脚本的其他部分。
使用 Google 我找到了 this wiki ,但它提供了一个文字示例:
echo "${@: -1}"
我无法让其他任何东西工作,例如:
echo "${@:2,1}"
我从终端收到“Bad substitution”。
问题是什么,我如何处理传递给 bash 脚本的第一个参数以外的所有参数?
最佳答案
使用这个:
echo "${@:2}"
语法如下:
echo "${*:2}"
也可以,但不推荐,因为 @Gordon已经解释过,使用 *
时,它将所有参数作为一个带有空格的参数一起运行,而 @
保留它们之间的中断(即使某些参数本身包含空格)。它与 echo
没有区别,但对许多其他命令很重要。
关于bash - 处理除第一个参数之外的所有参数(在 bash 脚本中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057387/