【发布时间】:2017-09-25 14:26:59
【问题描述】:
我遇到了命令失败的问题,因为我希望它们在某个目录中执行,但事实并非如此。
例如我想做的:
pdfcrop --margins '0 0 -390 0' $pag "$pag"_1stCol.pdf
创建一个新的pdf文档,然后
mv `\ls /home/dir | grep '_1stCol'` /home/gmanglano/dir/columns
问题是 mv 命令失败,因为它找到了文档,它试图从我执行脚本的目录中移动找到的文件,而不是从找到它的位置。
这种情况经常发生在我身上,我觉得我缺少一个概念,或者我认为这是错误的方式。
我得到的错误是:
mv: cannot stat '1stCol.pdf': No such file or directory
有的时候,其实是说fail,只是不在我启动脚本的目录下。
【问题讨论】:
-
顺便说一句,如果你引用
$pag的两个扩展名更好——如pdfcrop --margins '0 0 -390 0' "$pag" "${pag}_1stCol.pdf"——不引用第一个,它可以分成任意数量的单独pdfcrop参数,如果它包含空格、通配符等(或为空,在这种情况下它可以成为 零 个参数)。 -
这里不需要
\ls(尽管你不应该以非交互方式使用ls)——脚本中没有别名,除非你明确地打开它们并定义它们(它们在非交互式 shell 中默认关闭)。