我是 UNIX 新手,有一個家庭作業給我帶來了麻煩。我要撰寫一個腳本,將指定檔案從當前目錄備份到指定的目標目錄。該腳本將采用三個引數。
sourcePath,這是正在備份或復制的源檔案/檔案的路徑。backupPath,這是檔案將被備份的目標目錄的路徑。filePrefix,用于標識要備份的檔案,特別是僅復制名稱以給定前綴開頭的檔案,而忽略其他檔案。例如,如果用戶輸入字母“d”,那么所有以該字母開頭的檔案都將被復制,而其他任何檔案都將被忽略。
我對 bash 中的腳本/函式了解不多,所以我嘗試查找有用但還不夠的教程。這個腳本是我在輸入命令時可以輕松完成的。例如,我會cd進入包含檔案的目標目錄,然后使用cp命令將以特定前綴開頭的檔案復制到目標目錄,但是在制作腳本時我處于死胡同。
我覺得我的代碼似乎非常不正確,這是由于我缺乏經驗,但網上沒有任何幫助。到目前為止我的代碼是
read sourcePath
read backupPath
read filePrefix
grep /export/home/public/"$sourcePath
mkdir -p $backupPath
cp /export/home/public/"$sourcePath"/$filePrefix /home/public/"$backupPath"
所以腳本的示例執行將是
$ ./script.sh
(sourcePath)HW4testdir (backupPath)backup (filePrefix)d
輸出:
backing up: def (example file starting with d)
backing up: dog (example file starting with d)
到目前為止,執行代碼時,什么都沒有發生。同樣,我確信大多數甚至所有代碼都是錯誤的并且完全不符合標準,但我從未學習過腳本。如果我不必創建腳本,我可以輕松實作這個期望的結果。
uj5u.com熱心網友回復:
我建議bash:
read -r -p "sourcePath: " sourcePath
read -r -p "backupPath: " backupPath
read -r -p "filePrefix: " filePrefix
mkdir -p /home/public/"$backupPath"
cp /export/home/public/"$sourcePath/$filePrefix"* /home/public/"$backupPath"
確保使用的用戶有權創建目錄/home/public/"$backupPath"。
看:help read
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434593.html
上一篇:錯誤MailServiceIT.testSendEmailFromTemplate:143
下一篇:提取下劃線和點之間的字串
