我遇到了命令失敗的問題,因爲我期望它們在某個目錄中執行,但情況並非如此。如何使腳本獨立於執行的位置
比如我想做的事:
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中的默認設置)。 –