gpt4 book ai didi

bash - 解析命令和命令选项的 bash 变量

转载 作者:行者123 更新时间:2023-11-29 09:41:04 24 4
gpt4 key购买 nike

输入变量包含:

key1-key2-key3_command

输出需要是:

command -k key1 -k key2 -k key3

注意:键的数量可以从 1 到 3 不等。

我计算了破折号的数量,并将其与 if 语句一起使用来为每个键创建一个 bool 指示器(即 key1=1,取消设置 key2)。然后,如果设置了该键的标志,我将使用类似 ${parameter:+word} 的东西来添加该键。它开始变得有点困惑,所以我想我应该在这里问一下实现这一目标的最佳方法是什么。

最佳答案

var='key1-key2-key3_command'

IFS=_ read -r keys command <<< "$var" # Split $var at underscores.
IFS=- read -ra keys <<< "$keys" # Split $keys at dashes, -a to save as array.

for key in "${keys[@]}"; do # Treat $command as an array and add
command+=(-k "$key") # -k arguments to it.
done

echo "${command[@]}"

注意事项:

  • 这可以处理任意数量的键。
  • 处理其中包含空格的键。
  • $IFS 的更改只是暂时的;它们不会影响后续命令。
  • 如果要执行命令,请将最后一行更改为简单的 "${command[@]}"(无回显)。

关于bash - 解析命令和命令选项的 bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346215/

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