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

标签 linux bash shell scripting

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

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

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

最佳答案

一串$2到参数的末尾:

"${*:2}"

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

关于linux - 将部分bash参数组合成一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212085/

相关文章:

linux - 如何缩短此 grep 命令?

bash - 为列的每个唯一值输出整行一次(Bash)

eclipse sh 编辑并运行

c - Linux内核的list.h

linux - SVN blame - 网络连接意外关闭

bash - 如何提取文件的某些列并将它们保存在新文件中

linux - 使用 kate 编辑器的硬链接(hard link)

PHP文件上传到另一个目录

linux - Postgres 不会忽略大小写字母

linux - Ubuntu - 删除目录并忽略文件类型