如何检查scp命令是否可用?

如何检查scp命令是否可用?,scp,Scp,我正在寻找一个多平台解决方案,它允许我检查scp命令是否可用 问题在于,scp没有--version命令行,当在没有参数的情况下调用时,它将返回退出代码1(错误) 更新:如果不清楚的话,我所说的多平台是指一种可以在Windows、OS X和Linux上运行的解决方案,而不需要我安装任何东西。使用命令哪个scp。它让您知道命令是否可用,以及它的路径。如果scp不可用,则不返回任何内容 #!/bin/sh scp_path=`which scp || echo NOT_FOUND` if tes

我正在寻找一个多平台解决方案,它允许我检查
scp
命令是否可用

问题在于,scp没有
--version
命令行,当在没有参数的情况下调用时,它将返回退出代码
1
(错误)


更新:如果不清楚的话,我所说的多平台是指一种可以在Windows、OS X和Linux上运行的解决方案,而不需要我安装任何东西。

使用命令
哪个scp
。它让您知道命令是否可用,以及它的路径。如果scp不可用,则不返回任何内容

#!/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没有内置的which,因此我们依赖于提供which命令的系统。我不完全确定是否需要在我的系统上进行-x检查,该系统实际上验证找到的文件是否可由用户执行,但这可能不可移植。在系统没有which命令的罕见情况下,可以在此处编写which函数。

Windows上没有which
此线程对我很有帮助:。正如这里的答案中所提到的,对于非windows系统,您应该使用
哪个scp
。在windows系统上,您将使用
where.exe scp