我正在寻找一个允许我检查scp
命令是否可用的多平台解决方案。
问题是scp没有--version
命令行,当没有参数调用时,它将返回退出代码1
(错误)。
更新:如果不清楚,通过多平台我的意思是一个可以在Windows,OS X和Linux上运行的解决方案,而不需要我安装任何东西。
答案 0 :(得分:5)
使用命令which scp
。它可以让您知道命令是否可用以及它的路径。如果scp不可用,则不返回任何内容。
答案 1 :(得分:2)
#!/bin/sh
scp_path=`which scp || echo NOT_FOUND`
if test $scp_path != "NOT_FOUND"; then
if test -x ${scp_path}; then
echo "$scp_path is usable"
exit 0
fi
fi
echo "No usable scp found"
sh没有内置的,因此我们依赖于系统提供的哪个命令。我不完全确定是否需要-x检查 - 在我的系统上实际验证找到的文件是否可由用户执行,但这可能不是可移植的。在极少数情况下系统没有哪个命令,可以在这里写一个函数。