如何检查tcsh中是否存在单个标志?

时间:2018-08-14 00:37:39

标签: linux shell flags tcsh

我有一个bash脚本,它带有命令行标志“ --signal”。

在命令行上指定该选项后,我想在命令提示符下运行一行。

是否有一种简短的if语句进行检查的简洁方法? Getops比我不喜欢的东西更加混乱。

if (--signal)
 # Run this line
endif

2 个答案:

答案 0 :(得分:0)

强力但有效。将found的值替换为布尔值,如果是true,则分离您的进程以发送信号。

#!/bin/bash

found="didn't find it"
for v in "$@"
do
  if [ $v == "--signal" ]
  then
    found="found it"
  fi
done
echo $found

答案 1 :(得分:0)

问题说“ tcsh”,但描述说“ bash”。然后在评论中再次提到“ tcsh”。因此,我假设您要在tcsh中使用它。

如果您不担心错误检查,例如为其他不受支持的参数抛出错误等,则此简单的if语句可以满足您的要求。即检查是否将“ --signal”传递给脚本

if ("$*" =~ "*--signal*") then
    # Whatever you want to do
endif