禁止在Bash脚本输入中使用标志



我目前正在制作一个Bash脚本来接受用户的输入并通过Grep进行传递。我没有太多,但这个脚本的要求也不需要太多。脚本的一个要求是安全地创建脚本(通过安全脚本(。

我遇到的问题是,标志可以传递到Grep中,这会导致普通用户不想要的东西。例如,在我的输入中运行--help会产生与grep --help相同的结果。以下是我目前所拥有的:

#!/bin/bash
read -r -p "Input string: " input
[ -z "$input" ] || grep "$input" ../dict.txt

需要注意的一点是,我试图在保持代码安全的同时尽可能减少代码数量(其中保持代码安全是首要任务(。

简单的修复可以在这里完成:

#!/bin/bash
read -r -p "Input string: " input
[ -z "$input" ] || grep -- "$input" ../dict.txt

这里的双破折号充当了一个没有值的标志,这对于任何试图将脚本仅用于预期用途的人来说都很有用。我把所有的功劳都归功于@Fravadona。

相关内容

  • 没有找到相关文章

最新更新