2015-11-02 47 views
0

我寫了一個bash文件將文件從一個文件夾複製到另一個文件夾。問題與我的bash腳本複製文件

cp -u "{Source}" "{Destination}" 

以上是我的bash文件。

現在的問題是,如果我給了Destination = k,然後也,bash的文件得到執行(通常在destination我們會給路徑),它給成功message.It的給予成功的消息,但它不是複製文件和它只是創建一個名稱爲k(k的意思是,我給了目的地爲上述k)的文件

所以我需要檢查目的地,做它?

+2

你錯過了在你的腳本的 「$」 字符? –

+1

不要發明自己的語法。閱讀manuel https://www.gnu.org/software/bash/manual/bash.html。您的任務和參數擴展都無法在語法上正確。 – 4ae1e1

+0

是否驗證?如何包含它 – acer

回答

1

你可以這樣做:

if [ -d "${Destination}" ]; then 
    # do the copy work 
else 
    # echo the error message 
    exit 1 
fi 
+0

'if [-d「$ k」];然後 CP -u「/home/Desktop/test.txt」,「K」 其他 #呼應錯誤消息 出口1 fi' – acer

+0

但是當我們調用變量而已,我們將CAL $知道怎麼了?$符號會在這裏檢查目的地? – acer

+0

@acer不,不要做'「$ k」'因爲$ {variable}訪問變量的內容。如果您已將「k」(內容)分配給Destination(變量),則只需使用$ {Destination}。 '[-d「$ {Destination}」]'檢查'k'是否是磁盤上的一個目錄。 – sunhs