bash - 删除 bash 变量中的最后一个单词

标签 bash

我有这样的东西:

...
args=$*
echo $args
...

结果是

unusable1 unusable2 useful useful ... useful unusable3

我需要删除所有“不可用”的参数。他们总是在第一,第二和最后的位置。 经过一些调查,我发现 ${*:3} bash 语法。它有助于删除前两个。

...
args=${*:3}
echo $args
...

结果是

useful useful ... useful unusable3

但我找不到如何使用同样好的语法删除最后一个词。

最佳答案

您可以使用这样的函数/脚本来打印除最后一个参数之外的所有参数:

func() {
   echo "${@:1:$#-1}";
}

func aa bb cc dd ee
aa bb cc dd

func foo bar baz hello how are you
foo bar baz hello how are

关于bash - 删除 bash 变量中的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634686/

相关文章:

bash:将脚本的输出作为脚本执行

bash - 递归列出隐藏文件,无需 ls、find 或 Extendedglob

linux - Bash:将键值行转换为 CSV 格式

linux - 直bash空参数无法识别

linux - Bash 字符串连接并获取内容

linux - 由于 While,读取命令无法按预期工作

linux - 需要将结果写入变量

linux - 如何比较两个文件名的一部分并使用 'cat' 将它们附加在一起

linux - 读取命名管道时如何防止读取 block 退出

Bash 脚本错误地将\r 合并到变量中