2016-04-02 3 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 

Когда я запустить скрипт, имея каталог он держит собирается вариант еще и не признает значение я вошел в, если заявление.

+0

Вам нужен пробел после имени дир в тесте: 'если [-d«/home/user/.waste»]' – KevinO

+1

Если вы используете MkDir -p, вам не нужно, если заявление , Просто создайте каталог перед перемещением. – 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 
Смежные вопросы