gpt4 book ai didi

Bash:添加内联 if 来修改脚本

转载 作者:行者123 更新时间:2023-11-29 09:50:36 25 4
gpt4 key购买 nike

我正在编写一个 bash 脚本,我需要根据参数执行 2 个不同的操作。

例如调用不带参数的脚本 (./script) 它应该这样做:

docker-compose 运行 ...

如果我向我的脚本 (./script -d) 发送一个参数,它应该怎么做:

docker-compose -f 文件运行...

因此 -f 文件 是唯一根据参数添加的部分。我不想在每个 if 语句中重复整个代码,有没有更好的方法?

最佳答案

一种选择是使用数组。如果存在 -d,则将 -f "$file" 添加到数组中。

args=()
[[ $1 == -d ]] && args+=(-f "$file")
docker-compose "${args[@]}" run...

另一种是仅在设置变量时使用:+ 来替换替代值。如果 $option 设置为 -d 则替换为 -f "$file";如果它是空的,则将其留空。

option=
[[ $1 == -d ]] && option=-d
docker-compose ${option:+-f "$file"} run...

这两个选项都会正确处理包含空格的文件名。

关于Bash:添加内联 if 来修改脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48170240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com