检查字符串是否包含命令?

时间:2013-12-19 17:51:29

标签: linux bash

如何在bash Linux中检查字符串是否包含命令?

我试过这样做,但它不起作用

read x ;
if [ $x -eq $0 ] ;then
echo x is a command
else
echo is a string;fi

任何人都可以帮助吗?

2 个答案:

答案 0 :(得分:2)

使用bash的内置type

read x
type "$x"

对结果采取行动:

if type "$x" &>/dev/null; then
    # this is a builtin/function/alias/executable
else
    # this is not
fi

http://www.gnu.org/software/bash/manual/bashref.html#index-type

答案 1 :(得分:1)

任何字符串都可以是命令。您可以做的事情是使用which来确定$PATH上是否有这样命名的可执行文件。

检查which $x

的输出或退出状态