$ myvar="/path to/my directory"
$ sudo bash -c "cd $myvar"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$myvar
由于 的值中存在空格,我如何引用以避免分词myvar
?
在脚本.sh中:
#!/bin/bash
func(){
echo "I am here a func."
}
export -f func
export variable="I am here a variable"
sudo -E bash -c "func ; echo $variable"
Run Code Online (Sandbox Code Playgroud)
输出如下:
bash: func: command not found
I am here a variable
Run Code Online (Sandbox Code Playgroud)
其实我知道一个方法,比如:
#!/bin/bash
func(){
echo "I am here a func."
}
FUNC=$(declare -f func)
export variable="I am here a variable"
sudo -E bash -c "$FUNC; func ; echo $variable"
Run Code Online (Sandbox Code Playgroud)
但我觉得它太重了,因为我必须用这种方式注册每个函数。