为什么要避免使用BASH,我应该使用什么呢?一次又一次,我看到堆栈溢出上的Bash答案eval答案被抨击,双关有意,用于使用这样的“邪恶”结构。为什么eval这么邪恶?如果eval不能安全使用,我应该用什么?
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
如何制作 eval
安全
eval
能,会,可以
function token_quote { local quoted=() for token; do quoted+=( "$(printf '%q' "$token")" ) done printf '%s\n' "${quoted[*]}"}
示例用法:
% input="Trying to hack you; date"
% cmd=(echo "User gave:" "$input")
% eval "$(echo "${cmd[@]}")"User gave: Trying to hack youThu Sep 27 20:41:31 +07 2018
date
token_quote()
:
% eval "$(token_quote "${cmd[@]}")"User gave: Trying to hack you; date%
eval
杨__羊羊
TA贡献1943条经验 获得超7个赞
ls -la /path/to/foo | grep bar | bash
(ls -la /path/to/foo | grep bar) | bash
?
- 3 回答
- 0 关注
- 908 浏览
添加回答
举报
0/150
提交
取消