bash - 脚本的命令行参数

时间:2016-10-11 21:40:20

标签: linux bash shell

你好,这里有新手:D

我正在处理一个项目,该项目涉及一个处理* .dat文件的脚本。该脚本在用户输入的特定命令下运行

我的问题是我无法弄清楚如何从命令“抓取”参数“将它们”导入脚本

以下是特定命令的一些示例:

  1. ./tool.sh -f <file>

  2. ./tool.sh -f <file> -id <id>

  3. ./tool.sh --born-since <dateA> --born-until <dateB> -f <file>

  4. 其中tool.sh是脚本名称,<file>*.dat文件,<date>只是这种格式的日期YYYY-MM-DD

    因此您可以看到短字和长字都有。我知道getopts命令很难处理很长的命令。如何使用“单一”代码处理所有这些代码?

    编辑:我需要使用“if”

    的案例的参数和条件表达式

    我也可以这样做:

    #!/bin/bash 
    getopts f a
    if [ $1 == "something" && $2 == "something2" && $a == "f" ]; then
    ....
    elif [ $1 == "something3" && $2 == "something4" && $a == "f" ]
    ....
    else 
    ....
    fi
    

    这是正确的吗?

1 个答案:

答案 0 :(得分:0)

在bash脚本中,您可以通过以下顺序访问命令行参数:

echo $1 # the first argument
echo $2 # the second argument