将部分bash参数组合成一个字符串

时间:2014-01-19 01:20:06

标签: linux bash shell scripting

好吧,所以我试图将一些但不是所有脚本的参数合并到一个字符串中。我正在尝试编写一个脚本,将文件名中的空格更改为下划线,当给出选项-r时,它会递归执行该文件夹中的每个文件。

假设文件保存为removespaces.sh,如果你运行removespaces.sh file with spaces.doc它并不真正关心参数,我只能使用$ *

但是,当我尝试为整个文件夹执行此操作时,我现在将-r作为$ 1。所以我不能只是(懒惰)使用$ * ..我怎么能创建一个等于$ 2的字符串来结束?

1 个答案:

答案 0 :(得分:1)

参数末尾的$2字符串:

"${*:2}"

这与"${@:2}"的不同之处在于它连接所有参数,每个参数之间有一个空格。通常,可能两种形式都不是您想要的(例如,如果您的名称中包含多个连续空格的文件)。