syx*_*byi 7 linux bash-scripting
我的脚本代码是:
var="/some/path"
cp "$var*" "/another/path"
Run Code Online (Sandbox Code Playgroud)
然后它抛出:
cp: cannot stat '/some/path/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我试过这个并得到同样的错误:
cp "${var}*" "/another/path"
Run Code Online (Sandbox Code Playgroud)
最后,我通过以下方式解决了这个问题:
cp "$var"* "/another/path"
Run Code Online (Sandbox Code Playgroud)
这次命令成功执行,但我想知道为什么。
你能给出一个解释吗?
Erl*_* D. 13
当您使用"$var*"输出 will 时/some/path*, where*被视为一个字符(不是正则表达式,因为它在双引号内)。因此,在您的情况 ( /some/path/*) 中,cp正在搜索目录*内命名的文件/文件夹path。
当它的双引号外面它看作是一个正则表达式模式,这意味着任何以启动path(path1,path2等)。
或者如果path/*(该目录上的任何内容)。
| 归档时间: |
|
| 查看次数: |
32332 次 |
| 最近记录: |