![](/img/trans.png)
[英]How to check if files matching a regex exist in a directory in bash script?
[英]how to check if bash function exist on remote computer
我阅读了有关类似主题的各种答案,但我仍然无法解决我的问题。 即,在远程计算机上,我有一个 .bashrc 文件,其中包含一堆自定义功能。 我想检查该文件中是否存在 function 。 只是要补充一点,该脚本不断报告远程计算机上存在指定的 function,即使它不是。 这是我到目前为止所做的:
echo "Enter IP addres of the remote PC [def host@XX.XX.XX.XX]"
read ip
ip=${ip:-host@XX.XX.XX.XX}
$(ssh $ip "[ '$(type -t $1)' = function ]")
if [ $? -eq 0 ]; then
echo "function exist"
else
echo 'function doesnt exist'
fi
$(...)
在"
引号内局部扩展。研究单引号和双引号之间的区别。
the_function_you_want_to_check=something
ssh "$ip" '[ "$(type -t "'$the_function_you_want_to_check'")" = function ]'
不要使用$?
. 只是:
if ssh stuff...; then
echo yes
else
echo no
fi
感谢您的及时回复。 请注意,$1 实际上是我在本地计算机上运行的 bash 函数的第一个参数。 现在,您建议的更改报告远程计算机上没有 function 即使它存在。 我在本地机器上运行的更完整的 function 是:
appendFunction_to_remotePC(){
echo "Enter the IP addres of the PC [def host@XX.XX.XX.XX]"
read ip
ip=${ip:-host@XX.XX.XX.XX}
if ssh "$ip" '[ "$(type -t "'$1'")" = function ]'; then
echo yes
else
echo no
fi
}
我以通常的方式在本地计算机上调用 function:
$ appendFunction_to_remotePC "test"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.