bash – 使用变量中的参数查找命令
发布时间:2020-12-15 18:30:20 所属栏目:安全 来源:网络整理
导读:find /etc -name 'shells'/etc/shells # good !! SEARCH="-name 'shells'"; find /etc $SEARCH# nothing found - bad !! 为什么“find”命令不能在变量中使用params? 其他命令在这种模式下工作正常.它可能与空格和解析有关.我怎样才能首先在变量中构造param
> find /etc -name 'shells' /etc/shells # good !! > SEARCH="-name 'shells'"; find /etc $SEARCH # nothing found - bad !! 为什么“find”命令不能在变量中使用params? 其他命令在这种模式下工作正常.它可能与空格和解析有关.我怎样才能首先在变量中构造params然后用这个参数执行“find”? 要清楚,我想创建-name xxxx -o -name yyyyy -o -name zzzzz的链,然后通过一次运行查找所有文件
你的问题是简单的引号不是这样解释的,而是在你的参数中.
你认为你已经执行了这个: find /etc -name 'shells' 事实上你已经执行了这个: find /etc -name 'shells' 请记住:在bash中,双引号内的简单引号不会被忽略. 因此解决方案是不要提出任何简单的引用: SEARCH="-name shells"; find /etc $SEARCH 更好的解决方案是使用引号然后使用eval: SEARCH="-name 'shells'"; eval " find /etc $SEARCH" 安全问题:从未在eval参数中使用用户提供的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |