我遇到了命令失败的问题,因为我期望它们在某个目录中执行,但情况并非如此。如何使脚本独立于执行的位置
比如我想做的事:
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
当有,其实,说失败,它只是不是我发起了脚本的目录。
顺便说一句,如果你同时引用'$ pag'的扩展 - 比如'pdfcrop --margins'0 0 -390 0'“$ pag”“$ {pag} _1stCol.pdf”' - without引用第一个,如果它包含空格,通配符等(或者是空的,在这种情况下它可以变成* zero *参数),它可以分成任意数量的单独的'pdfcrop'参数。 –
这里不需要'\ ls'(尽管你不应该使用'ls'非交互) - 脚本中没有别名,除非你明确地打开它们并定义它们(它们关闭非交互式shell中的默认设置)。 –