检查shell命令的参数是否存在

时间:2015-05-19 10:09:46

标签: shell parameters

在我的程序中,我必须检查用户输入的命令是否存在,如果存在,程序需要检查该命令的参数是否正确。

例如:

  • ls(是正确的)
  • -al(是正确的)
  • 做手表

如果我这样做:

  • ls(是正确的)
  • -kala(不正确)
  • 不要做手表。

我怎么能这样做?这是我的剧本:

while true
do
echo "Insert the command"
read comm
if [ "$(type -t $comm)" != "" ]; then
    echo "Insert the parameters of the command ";
    read par;
    echo "Insert the time of watch";
    read time;
    if [ $t -le 0 ]; then
        echo "Value not correct";
    else     
        clear;
        while true
        do
            echo "$comm"
            date
            echo ""
            $comm $par
            sleep $((time))
            clear
       done
    fi;
    else
        echo "Command not found, retry.";
        echo "";
    fi
done

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令替换命令调用:

if ! $comm $par; then
    exit 1
fi

使错误后停止。还有一个名为watch的工具,但我想你已经知道了。