Scripting
一個簡單腳本的問題
我在 AIX 中的腳本有問題,但我找不到錯誤。我想在兩個目錄之間複製文件,但首先檢查這些目錄的存在。我正在做的是這樣的:
PATH=/home/fede/ PATH2=/home/prueba/ if [ -d $PATH ]; then find $PATH -type f -exec cp {} $PATH2 \; echo "se copiaron los archivos correctamente" else echo "no existe" fi
但我收到這條消息:
./scriptTB[5]: find: not found. se copiaron los archivos correctamente
。最後一行用西班牙語寫著“文件已正確複製”。腳本的名稱是scriptTB
.我必須先放什麼
find
嗎?看來問題出在find
.
$PATH
是一個預設環境變數,它告訴您的系統在哪裡可以找到其程序二進製文件(例如find
您嘗試使用的程序),因此您應該為該變數使用不同的名稱。我打賭你正在覆蓋你的系統$PATH
,現在你的系統找不到該find
程序。試試這個,看看它是否有效。
PATH
恰好是 shell 用來定位執行檔的環境變數。如果您取消設置或更改它,shell 可能找不到諸如find
或之類的命令cp
。如果在腳本中使用小寫變數名會更好。它們與重要的環境變數發生衝突的可能性較小。
在這種情況下,您可以使用
source_dir
andtarget_dir
,例如,它具有為讀者提供一些文件的額外好處。