Scripting

一個簡單腳本的問題

  • March 18, 2019

我在 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_dirand target_dir,例如,它具有為讀者提供一些文件的額外好處。

引用自:https://unix.stackexchange.com/questions/336938