在对最近问题的评论中,Stéphane Chazelas 提到双括号算术存在安全隐患,例如:
x=$((1-$x))
Run Code Online (Sandbox Code Playgroud)
在大多数贝壳上。
我的谷歌技能似乎生疏了,我找不到任何东西。双括号算术的安全含义是什么?
有没有一种简单的方法来反转数组?
#!/bin/bash
array=(1 2 3 4 5 6 7)
echo "${array[@]}"
Run Code Online (Sandbox Code Playgroud)
所以我会得到:7 6 5 4 3 2 1
而不是:1 2 3 4 5 6 7
有没有办法通过 glob 反转文件列表?
所以我会得到与以下相同的结果:
ls -r *
Run Code Online (Sandbox Code Playgroud)
我在 shell 脚本中使用它并shellcheck不断抱怨:
^--------^ SC2045:迭代 ls 输出是脆弱的。使用球体。
bash ×2
arithmetic ×1
array ×1
bash-array ×1
ls ×1
security ×1
shell ×1
shell-script ×1
shellcheck ×1
wildcards ×1