加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何在bash脚本中传递两个参数或参数

发布时间:2020-12-13 19:49:19 所属栏目:Linux 来源:网络整理
导读:参见英文答案 How do I parse command line arguments in Bash?29个 我是bash脚本的新手,我需要你的支持才能解决这个问题.我有一个bash脚本“start.sh”.我想编写一个带有两个参数的脚本,以便我可以按以下方式运行脚本 ./start.sh -dayoffset 1 -processMode
参见英文答案 > How do I parse command line arguments in Bash?29个
我是bash脚本的新手,我需要你的支持才能解决这个问题.我有一个bash脚本“start.sh”.我想编写一个带有两个参数的脚本,以便我可以按以下方式运行脚本

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

dayoffset和processMode是我必须编写脚本的两个参数.

dayoffset = 1是报告日期(今天)
processMode = true或false

解决方法

首先,您可以这样做:
#!/bin/bash
dayoffset=$1
processMode=$2
echo "Do something with $dayoffset and $processMode."

用法:

./start.sh 1 true

另一个:

#!/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."

用法:

./start.sh -dayoffset 1 -processMode true

使用日偏移量解析示例参数:

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

测试:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读