关于bash脚本的选项(全新的)

时间:2016-09-02 18:46:43

标签: linux bash

所以我开始制作bash脚本。我可以做基本的事情,但就是这样。

当我输入时,我想做点什么:

./myprogram -t

它会做“回真”

如果我输入:

./myprogram -f

它会做“回声错误”

提前致谢

2 个答案:

答案 0 :(得分:2)

位置参数可通过变量$1 $2等获得。

有很多方法可以实现这个目标。您可以使用if语句:

#!/bin/bash
if [ "$1" = -t ] 
then
  echo true
elif [ "$1" = -f ] 
then
  echo false 
fi

案例陈述:

#!/bin/bash
case "$1" in 
  -t) echo true ;;
  -f) echo false ;;
esac

或短路:

#!/bin/bash
[ "$1" = -t ] && echo true
[ "$1" = -f ] && echo false

对于更复杂的情况,请考虑使用getoptgetopts库。

答案 1 :(得分:2)

你所谓的"选项"通常被称为编程中的参数。您应该通过阅读http://tldp.org/LDP/abs/html/othertypesv.html处的所有内容,阅读有关如何在bash中处理参数的更多信息。要回答您的直接问题,脚本可能如下所示:

#!/bin/bash
if [[ $# -eq 0 ]]; then
    echo 'No Arguments'
    exit 0
fi


if [ $1 = "-f" ]; then
    echo false
elif [ $1 = "-t" ]; then
    echo true
fi