2016-04-02 43 views
1

Önemsiz dosyaları bir bin benzeri dizine taşıyacak basit bir komut dosyası oluşturmaya çalışıyorum. Bir if ifadesine sabit bir dizin nasıl eklenir?

yazdığım kod

burada:

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 

Başka seçeneği devam ediyor ve ben eğer açıklamada girilen değeri tanımıyor dizini yerken ben komut dosyası çalıştırdığınızda.

+0

Sen testinde dir adından sonra bir boşluk gerekir: 'Eğer mkdir -p kullanırsanız deyimi ise [-d "/home/user/.waste"]' – KevinO

+1

, ihtiyacınız yoksa . Sadece hareket etmeden önce dizini oluşturun. – SaintHax

cevap

1

Testin yanlış olduğundan şüpheleniyorum (kapanma braketinden önce bir boşluk gerekiyor). 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 
İlgili konular