linux - Shell 脚本(如果未评估条件以显示给用户的帮助信息)

标签 linux bash shell

我写了一个帮助菜单来引用shell脚本的使用 my_script.sh

echo $'\n\n'
echo $(printf '=%.0s' {1..100})
printf ' %.0s' {1..40}
echo "Welcome"
echo $(printf '=%.0s' {1..100})
echo $'\n'

arg=$1
echo "Input : $arg"
echo

if [[ arg -eq "-h" ]] || [[ arg -eq "-H" ]] || [[ arg -eq "-help" ]] || [[ arg -eq "-Help" ]] || [[ arg -eq "--h" ]] || [[ arg -eq "--H" ]] || [[ arg -eq "--help" ]] || [[ arg -eq "--Help" ]]; then
    echo "Help menu requested...."
    echo $'\n\n'
    echo $(printf '~%.0s' {1..100})
    printf ' %.0s' {1..43}
    echo "Help Menu"
    echo $(printf '~%.0s' {1..100})
    echo $'\n'
    exit 0
else
    echo "Executing a program...."
    ./another_script.sh
fi

当我执行“myscript.sh -h”(或任何带有“-”前缀的选项)时,它会进入 if 条件,但任何其他参数都不会。我在这里做错了什么?我是 bash 脚本的新手。

最佳答案

if 的两个简单问题:

但是:我建议使用 getopts而不是字符串比较。这将使该部分更健壮,处理参数的不同排序,或者当一个字母参数组合成一个参数时。

关于linux - Shell 脚本(如果未评估条件以显示给用户的帮助信息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52203944/

相关文章:

linux - 如何打印仅包含字母的单词?

linux - Nagios check_ntp_peer 不工作

linux - scp上传文件需要执行权限吗?

linux - 在 linux 上使用 J 的 C 共享库接口(interface)(dll)

linux - 如何根据多个条件将大文件 ".csv"分成小文件?

Java Runtime.getRuntime().exec(cmd) 命令包含单引号

bash - shell编程中$(command)和 `command`有什么区别?

c - C/Linux 中的线程执行时间

linux - 两个命令或命令管道命令 - Spawn Expect

windows - Windows 上的 docker 错误 : the input device is not a TTY. 如果您使用的是 mintty,请尝试在命令前加上 'winpty'