关于Linux:如何在bash脚本中传递两个参数或参数

How to pass two parameters or arguments in bash scripting

本问题已经有最佳答案,请猛点这里访问。

我刚开始使用bash脚本,需要您的支持来解决这个问题。我有一个bash脚本"start.sh"。我想用两个参数编写一个脚本,这样我可以用以下方式运行该脚本

./start.sh-dayoffset 1-processmode真

DayOffset和ProcessMode是我必须编写脚本的两个参数。

dayoffset=1是报告日期(今天)processMode=真或假


首先,你可以这样做:

1
2
3
4
#!/bin/bash
dayoffset=$1
processMode=$2
echo"Do something with $dayoffset and $processMode."

用途:

1
./start.sh 1 true

另一个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

while [[ $# -gt 0 ]]; do
    case"$1" in
    -dayoffset)
        day_offset=$2
        shift
        ;;
    -processMode)
        if [[ $2 != true && $2 != false ]]; then
            echo"Option argument to '-processMode' can only be 'true' or 'false'."
            exit 1
        fi
        process_mode=$2
        shift
        ;;
    *)
        echo"Invalid argument: $1"
        exit 1
    esac
    shift
done

echo"Do something with $day_offset and $process_mode."

用途:

1
./start.sh -dayoffset 1 -processMode true

带日偏移量的示例参数分析:

1
2
3
#!/bin/bash
dayoffset=$1
date -d"now + $dayoffset days"

测试:

1
2
3
4
$ bash script.sh 0
Fri Aug 15 09:44:42 UTC 2014
$ bash script.sh 5
Wed Aug 20 09:44:43 UTC 2014