好吧,所以我正在尝试将脚本的一些但不是全部参数组合到一个字符串中。我正在尝试编写一个脚本,将文件名中的空格更改为下划线,并且在给出选项 -r 时,它递归地对文件夹中的每个文件执行此操作。
假设文件保存为 removespaces.sh,如果你运行 removespaces.sh file with spaces.doc
它真的不需要关心参数,我可以只使用 $*
但是,当我尝试对整个文件夹执行此操作时,我现在将 -r 设置为 $1。所以我不能只是(偷懒)使用 $*.. 我怎么能创建一个等于 $2 的字符串来结束?
最佳答案
一串$2
到参数的末尾:
"${*:2}"
这与 "${@:2}"
的不同之处在于它连接所有参数,每个参数之间有一个空格。通常,两种形式都可能不是您想要的(例如,如果您的文件名称中有多个连续空格)。
关于linux - 将部分bash参数组合成一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212085/