相关疑难解决方法(0)

Bash Shell脚本 - 检查标志并获取其值

我正在尝试创建一个shell脚本,其设计如下:

script.sh -t application
Run Code Online (Sandbox Code Playgroud)

首先,在我的脚本中,我想检查脚本是否已使用-t标志运行.例如,如果它没有像这样的标志运行我想让它出错:

script.sh
Run Code Online (Sandbox Code Playgroud)

其次,假设有一个-t标志,我想获取该值并将其存储在我可以在我的脚本中使用的变量中,例如:

FLAG="application"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够在任何一个方面取得的唯一进展是$ @抓取所有命令行参数,但我不知道这与标志有什么关系,或者这是否可能.

linux bash shell debian

66
推荐指数
3
解决办法
11万
查看次数

为什么 getopts 只在第一次工作?

为什么此选项仅在第一次使用时有效,然后每隔一次就被忽略?就像不使用该选项时正在重置一样。

这是我的功能:

testopts() {
    local var="o false"
    while getopts "o" option; do
        case "${option}" in
            o)
                var="o true"
                ;;
        esac
    done
    echo $var
}
Run Code Online (Sandbox Code Playgroud)

运行它时,它仅在第一次传递选项时返回 true。

$ testopts
o false
$ testopts -o
o true
$ testopts -o
o false
Run Code Online (Sandbox Code Playgroud)

bash getopts

5
推荐指数
1
解决办法
324
查看次数

标签 统计

bash ×2

debian ×1

getopts ×1

linux ×1

shell ×1