/bin/bash 命令中函数的函数参数

爆裂声

我不得不使用一些从 /bin/bash 调用的 bash 代码作为命令跟随-c选项。我得到了一些难以理解的东西。这按预期通过:

root@punk:/home/s# function a () { echo $1 "world";}&&a hello
hello world
root@punk:/home/s# 

但这错过了函数的参数

root@punk:/home/s# /bin/bash -c "function a () { echo $1 "world";}&&a hello"
world
root@punk:/home/s# 

第二种情况如何解决?

知乎

由于您使用双引号,因此

/bin/bash -c "function a () { echo $1 "world";} && a hello"

, 的当前值$1将被替换,该值在您的环境中必须为空,因此它将变为

/bin/bash -c "function a () { echo "world";} && a hello"

这实际上是

/bin/bash -c "function a () { echo world;} && a hello"

.

您可以对外部引用使用单引号:

[STEP 101] # /bin/bash -c 'function a () { echo $1 "world";} && a hello'
hello world
[STEP 102] #

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章