2017-04-17 48 views
-4

我試圖創建一個允許用戶追加已存在的目標文件的文件副本版本。該程序有兩個參數:源文件和目標文件。Bash shell程序

如果目標文件已經存在,它必須要求用戶在三個選項之間進行選擇:覆蓋目標文件,追加目標文件或取消。

應該進行以下參數檢查:

  • 參數的個數必須是2
  • 源文件必須是常規文件。
  • 如果目標文件存在,它必須是常規文件。

任何人都可以幫助我如何完成這項任務嗎?

+0

,你做'CP的資源文件destfile'。如果他們想追加,你可以執行'cat sourcefile >> destfile'。 – Barmar

+0

我建議看看'help test'來做(a),(b)和(c)。 – Cyrus

回答

0

嘗試回答你4個或5個問題:在未來,請向每個職位的單一問題,並試圖在回答它作爲所有這一切都是很容易通過谷歌回答。

如何檢查how many arguments are passed到腳本


Information on "test"。您還可以使用命令man test到RTFM

一些例子:

  1. 測試,如果它是一個普通文件(從以前的鏈接)返回真/假:

    [-f MYFILE]

  2. 測試文件是否存在(再次從一個鏈接)返回真/假:

    [-a MYFILE]


How to read user input

我認爲, 「內聯」 的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 
+0

*指向http://stackoverflow.com/help/how-to-answer*中的「回答嚴重問題」標題 –