如何在find命令中使用变量?如何正确执行该代码的最后一行?
关于find命令使用变量及Shell代码修正的解答
一、find命令中使用变量的正确方法
- 核心在于引号的选择:
- 单引号(
')会原样保留内容,里面的变量不会被Shell解析,所以绝对不能用单引号包裹需要生效的变量 - 双引号(
")会正常解析变量,同时能保留变量值里的空格、特殊字符,是最稳妥的用法 - 如果变量值没有空格或特殊字符,也可以不用引号,但不推荐——万一变量值有空格,命令直接就出错了
- 单引号(
二、修正给定Shell代码的最后一行
原代码最后一行用了单引号,导致$item_name无法被解析成用户输入的内容,修改成双引号即可解决问题。
修正后的完整代码:
echo "Please, Type an existing title what you want to read: " read item_name item_name=${item_name,,} find . -type f -name "$item_name*"
简单说就是把'$item_name*'替换成"$item_name*",这样Shell会先把$item_name替换成用户输入的标题内容,再传递给find命令,就能正确按标题前缀查找文件了。
内容的提问来源于stack exchange,提问作者Indrojit Mondal
相关产品推荐
相关产品推荐

