我必须使用从/ 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#
如何解决第二种情况?
答案 0 :(得分:1)
由于您使用双引号,所以
/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] #