Mad*_*ake 2 linux ssh bash shell
我正在运行bash脚本,但是当我尝试在远程计算机上运行函数时,它说
bash: keyConfig: command not found
Run Code Online (Sandbox Code Playgroud)
这是我的脚本:
keyConfig() {
sed -i.bak -r "/^$1/s/([^']+')([^']+)('.*)/\1$2\3/" $3
}
remoteExecution() {
ssh ppuser@10.101.5.91 " keyConfig $1 $2 $4 "
}
remoteExecution
Run Code Online (Sandbox Code Playgroud)
简单的解决方法:
remoteExecution() {
ssh ppuser@10.101.5.91 "`declare -f keyConfig`; keyConfig $1 $2 $4"
}
Run Code Online (Sandbox Code Playgroud)
在这里,keyConfig仅调用sed命令,该命令在远程系统上可用。如果keyConfig已经在调用任何本地函数,则在declare -f的命令行中也添加该函数。
这样,keyConfig本地外壳程序中的函数在通过ssh生成的远程外壳程序中定义,然后被调用。