我試圖創建一個允許用戶追加已存在的目標文件的文件副本版本。該程序有兩個參數:源文件和目標文件。Bash shell程序
如果目標文件已經存在,它必須要求用戶在三個選項之間進行選擇:覆蓋目標文件,追加目標文件或取消。
應該進行以下參數檢查:
- 參數的個數必須是2
- 源文件必須是常規文件。
- 如果目標文件存在,它必須是常規文件。
任何人都可以幫助我如何完成這項任務嗎?
我試圖創建一個允許用戶追加已存在的目標文件的文件副本版本。該程序有兩個參數:源文件和目標文件。Bash shell程序
如果目標文件已經存在,它必須要求用戶在三個選項之間進行選擇:覆蓋目標文件,追加目標文件或取消。
應該進行以下參數檢查:
任何人都可以幫助我如何完成這項任務嗎?
嘗試回答你4個或5個問題:在未來,請向每個職位的單一問題,並試圖在回答它作爲所有這一切都是很容易通過谷歌回答。
如何檢查how many arguments are passed到腳本
Information on "test"。您還可以使用命令man test
到RTFM
一些例子:
測試,如果它是一個普通文件(從以前的鏈接)返回真/假:
[-f MYFILE]
測試文件是否存在(再次從一個鏈接)返回真/假:
[-a MYFILE]
我認爲, 「內聯」 的bash這裏的版本是非常好的,爲您的需求:
read -p "Do you want to (C)opy, (A)ppend, or (E)nd? " answer
case ${answer:0:1} in
c|C)
cp file1 file2
;;
a|A)
cat file1 >> file2
;;
*)
echo "That's not an option, yo"
;;
esac
如何複製文件(用戶選擇後)
cp file1 file2
如何如果用戶想拷貝追加一個文件(用戶做出選擇後)
cat file >> file2
*指向http://stackoverflow.com/help/how-to-answer*中的「回答嚴重問題」標題 –
,你做'CP的資源文件destfile'。如果他們想追加,你可以執行'cat sourcefile >> destfile'。 – Barmar
我建議看看'help test'來做(a),(b)和(c)。 – Cyrus