好吧,所以我试图将一些但不是所有脚本的参数合并到一个字符串中。我正在尝试编写一个脚本,将文件名中的空格更改为下划线,当给出选项-r时,它会递归执行该文件夹中的每个文件。
假设文件保存为removespaces.sh,如果你运行removespaces.sh file with spaces.doc
它并不真正关心参数,我只能使用$ *
但是,当我尝试为整个文件夹执行此操作时,我现在将-r作为$ 1。所以我不能只是(懒惰)使用$ * ..我怎么能创建一个等于$ 2的字符串来结束?
答案 0 :(得分:1)
参数末尾的$2
字符串:
"${*:2}"
这与"${@:2}"
的不同之处在于它连接所有参数,每个参数之间有一个空格。通常,可能两种形式都不是您想要的(例如,如果您的名称中包含多个连续空格的文件)。