2015-02-21 2 views
0

Я использую следующую команду, чтобы открыть, заменить, просматривать изменения и сохранения файла,Команда запросит подтверждение перед выполнением следующей команды в Shell скрипт

SED «s/старая строка/новая строка/г» имя_файла > filename1; diff filename1 имя_файла; мв filename1 файла

Можно ли запрашивать подтверждение перед выполнением мВ команды, как показано ниже, «S/старая строка/новая строка/г» имя_файла> имя_файла1 дифф имя_файла1 имя файла

Команда

патч в для Да или нЕТ запись от пользователя

мв filename1 имя_файла

Резон не подтверждать изменения, а затем сохранить его ...

Пожалуйста, помогите ....

ответ

1

Да, вы можете прочитать пользовательский ввод в переменный с помощью read, а затем сравнить с каким-то приемлемым значением, как "yes". Также вы можете сохранить команду в переменной и распечатать ее пользователю и выполнить ее позже.

#!/bin/bash 

COMMAND='mv filename1 filename' 

echo "Perform the following command:" 
echo 
echo " \$ $COMMAND" 
echo 
echo -n "Answer 'yes' or 'no': " 

read REPLY 
if [[ $REPLY == "yes" ]]; then 
    $COMMAND 
else 
    echo Aborted 
    exit 0 
fi 
+0

Большое спасибо ... позвольте мне попробовать .. – Thangan

+0

это не сработало ... Я вставлю проблему как ответ, как здесь форматирование настолько плохое – Thangan

0

Мой Сценарий,

#!/bin/bash 


sed 's/This/It/g' test.xml > "test.xml1" 

diff test.xml test.xml1 

COMMAND ='mv test.xml1 test.xml' 

echo "Perform the following command:" 
echo 
echo " \$ $COMMAND" 
echo 
echo -n "Answer 'yes' or 'no':" 

read REPLY 

if[[$REPLY=="yes"]]; then 
$COMMAND 

else 

echo Aborted 

exit 0 

fi 

Ошибка на выполнение есть

2c2 
< This is a Test file 
--- 
> It is a Test file 
./test.sh[9]: COMMAND: not found 
Perform the following command: 

    $ 

-n Answer 'yes' or 'no': 
yes 
./test.sh[19]: syntax error at line 20 : `then' unexpected 

mv команда не сработала.

+0

Некоторые символы пространства важны, и вам не хватает многие. Например, '[[' и ']]' требует пробелов. – svlasov

+0

Ohhh ... позвольте мне проверить ... извините, что я новичок в Unix .... – Thangan

+0

Wow awesome ... большое спасибо – Thangan

Смежные вопросы