в настоящее время я работаю над кодом:UNIX оболочки сценариев, если и Grep команда
egrep '("$1"|"$2")' Cities.txt > test.txt
if [ $# -eq 1] && grep -q "$1" test.txt ; then
grep $1 Cities.txt
elif [ $# -eq 2 ] && egrep -q '("$1"|"$2")' test.txt ; then
egrep '("$1"|"$2")' Cities.txt > $2.txt
else $1 not found on Cities.txt
fi
exit
в основном, это позволяет пользователю вводить 1 или 2 аргумента и аргумент (ов)/используются в качестве Grep pattern в Cities.txt и перенаправить вывод в файл с именем test.txt
Если пользователь ввел один аргумент и аргумент соответствовал содержимому test.txt, он отображает строки, содержащие аргумент 1 в файле Города .текст.
Если пользователь ввел 2 аргумента и оба аргумента соответствовали содержимому файла test.txt, то он сопоставил оба аргумента в Cities.txt и перенаправил вывод в файл, названный вторым аргументом пользователя.
Я не мог заставить код работать, возможно, некоторые из вас, ребята, могут помочь мне проверить ошибку. благодаря
ничего себе замечательно, все работает отлично, за исключением, когда я вошел 1 аргумент, который сделает, если условие истинно, оно не запустить «тогда», вместо этого он побежал «еще» –
Просто ввод одного аргумента не удовлетворяет условию 'if'. Этот аргумент также должен быть в test.txt. –
aah, ладно, я понимаю. есть ли какие-либо изменения, которые я мог бы сделать, чтобы удовлетворять условию IF при вводе 1 аргумента? –