首先,您必须处理或保存第一个参数($1),然后使用shift命令删除参数 1 并将所有剩余的参数下移一位,因此 $10 就变成了 $9,依此类推。$# 的值将被更新以反映参数的剩余数量。在实践中,最常见的情况是将参数迭代到函数或 shell 脚本,或者迭代到命令替换使用for语句创建的列表,因此这个约束基本不成问题。 现在,...
我的目标 - 在 bash 脚本中: 定义一个接受参数的函数 使用函数名称和参数设置 bash 变量 (CMD) 通过$CMD执行 如果$args 中没有空格,没问题 - 但这里有一个最小的脚本来说明: #!/bin/bashfunctiontstArgs() {echo"In tstArgs: ArgCnt:$#; Arg1:[$1]; Arg2:[$2]"} ARG1=today ARG2=tomorrow CMD...
bash: $echo$SHELL/bin/bash$bash --versionGNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu) Run Code Online (Sandbox Code Playgroud) 我在文件 test.sh 中有代码: $ cat test.sh aaa='---aa-aa---'echo"${aaa}"echo'does not work...'# trim "-"echo${aaa/+(-)}echo...
不要把参数放在字符串中,而是放在数组中。数组元素处理空格要优雅得多:
命令扩展也可以执行较复杂的管道命令。比如这条命令:file $(ls -d /usr/bin/* | grep zip),grep 的输出变成了 file 的参数。如图二所示。bash 还支持另外一种语法,就是用反引号「`」代替 「${}」,如图三所示。但是不建议在命令扩展中使用反引号,尤其是在 shell 脚本中用到命令扩展的时候。因为反引号和...