相关疑难解决方法(0)

如何在算术表达式中安全地使用关联数组?

一些类似 Bourne 的 shell 支持关联数组:(ksh93自 1993 年以来)、zsh(自 1998 年以来)、bash(自 2009 年以来),尽管 3 之间的行为存在一些差异。

一个常见的用途是计算某些字符串的出现次数。

但是,我发现以下内容:

typeset -A count
 (( count[$var]++ ))

对某些值不起作用$var,我听说如果 的内容处于或可能处于攻击者的控制之下,它甚至会构成任意命令执行漏洞$var

这是为什么?有问题的价值观是什么?我该如何解决它?

security bash ksh zsh associative-array

17
推荐指数
1
解决办法
610
查看次数

如何修改这个`while read; mv printf` 代码仅重命名某些文件类型的文件?

有问题的代码:

ls | cat -n | while read n f; do mv "$f" `printf "video_%03d.mp4" $n`; done
Run Code Online (Sandbox Code Playgroud)

上面的代码将执行的目录中的所有文件/文件夹重命名为:

video_001.mp4
video_002.mp4
video_003.mp4
and so on... 
Run Code Online (Sandbox Code Playgroud)

但是,最好只针对特定类型的文件,例如只重命名.mp4文件,而不是重命名包括目录在内的所有内容。

ls bash shell-script rename printf

2
推荐指数
1
解决办法
389
查看次数

标签 统计

bash ×2

associative-array ×1

ksh ×1

ls ×1

printf ×1

rename ×1

security ×1

shell-script ×1

zsh ×1