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 |