spi*_*zak 2 variables bash shell
输入变量包含:
key1-key2-key3_command
Run Code Online (Sandbox Code Playgroud)
输出需要是:
command -k key1 -k key2 -k key3
Run Code Online (Sandbox Code Playgroud)
警告:键数可以从1到3不等.
我已经计算了破折号的数量,并使用if语句为每个键创建一个布尔指示符(即key1 = 1,unset 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[@]}"
Run Code Online (Sandbox Code Playgroud)
笔记:
$IFS只是暂时的; 它们不会影响后续命令."${command[@]}"(无回显).| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |