2016-04-02 83 views
1

我想做一個簡單的腳本,將垃圾文件移動到像目錄一樣的垃圾箱。如何將一個固定目錄添加到if語句中?

我寫的代碼是在這裏:

echo "Which file/s you want to delete?" 

read fileName 

if [ -d "/home/user/.waste"] 
then 
    #moves the file to .waste 
    mv $fileName /home/user/.waste 
    echo "File deleted." 

else 
    #creates the directory 
    mkdir /home/user/.waste 
    mv $fileName /home/user/.waste 
    echo "waste bin created and file deleted." 
fi 

當我雖然具有它一直要到別的選項,不承認我的if語句輸入的值的目錄運行該腳本。

+0

您需要在測試中的目錄名稱後面輸入一個空格:'如果[-d 「/home/user/.waste」]' – KevinO

+1

如果你使用的mkdir -p,你不if語句需要。在移動之前創建目錄。 – SaintHax

回答

1

我懷疑測試是不正確的(在括號之前需要一個空格)。 if [ -d "DIR" ]

#!/bin/bash 

WASTE_DIR="/home/user/.waste" 

echo "Which file/s you want to delete?" 

read fileName 

if [ ! -f "$fileName" ] 
then 
    echo "Unable to find file "$fileName" 
fi 

if [ -d "$WASTE_DIR" ] 
then 
    mv "$fileName" "$WASTE_DIR" 
    echo "File moved to waste" 
else 
    mkdir -p "$WASTE_DIR" 
    mv "$fileName" "$WASTE_DIR" 
    echo "$WASTE_DIR created and file moved" 
fi