我们正在执行以下命令
rm -f $folder_name/filename*
cp $folder_name1/filename1* $folder_name/
检查执行日志后,我们得到以下命令执行
rm -f '/home/user/file*'
cp /home1/user1/file1* /home/user/
为什么rm
使用单引号而不是cp
命令执行?
答案 0 :(得分:1)
您有可能正在检查bash -x
的输出,它会在参数周围添加单引号,仅用于消除歧义。但是您显示的代码无法产生您描述的输出。
rm wildcard*
如果通配符匹配,将扩展为rm
和匹配的文件。但是,如果不,则扩展将等同于
'rm' 'wildcard*'
我添加引号只是为了表示不会进行进一步的评估,类似于bash -x
(至少sh -x
的某些变体)。