bash正则表达式模式参数

时间:2019-10-17 04:22:37

标签: regex bash

我需要创建检查参数的脚本,该参数是Linux命令:

cat script.sh

 case "$1" in 
     cp|cd|ls ) exec "$0" "$1" ;;
             *) echo "error: not permitted" ;;
 esac

我需要添加检查是否第一个参数是这样的:

  

[-s $ file] && echo OK

所以我添加了这样的条件:

 case "$1" in 
   cp|cd|ls| "[ -s .* ] && echo OK" ) exec "$0" "$1" ;;
    *) echo "error: not permitted" ;;
   esac

但是它不起作用,请知道

1 个答案:

答案 0 :(得分:0)

您不能将条件置于“案例”模式中。您可以将它们放入案例的命令部分。

case "$0" in 
     cp|cd|ls )
         [ -s "$1" ] && exec "$0" "$1"
         echo "Bad parameter" ;;
     *) echo "error: not permitted" ;;
esac

也请注意“ cd”:您不能在子进程中执行“ cd / path”。