Сценарий (input.sh):
echo "What is your name?"
if [[ $1 =~ "*" ]]
then
read name1
read name2
echo "Are you really "$name1 "??? or" $name2 "?"
else
echo "Are you really "$1 "??? or" $2 "?"
fi
Что мне нужно, так это запустить команду: ./input.sh fahad Eclipse
Затем следует вывести:
What is your name?
Are you really fahad ??? or Eclipse ?
Кроме того, если я сделаю это: ./input.sh
Тогда он должен спросить меня о вводе и затем напечатать строку.
Как я могу это сделать?
Ваш сценарий не выполняется правильно из-за Вашего, если оператор, следующее должно работать. Требуется 2 args, или это спросит их name1 и name2.
, если оператор содержит '$ #', который вычисляет количество данных аргументов. Следование '-ne' является оператором сравнения для 'не равный'. Наконец последнее число для того, сколько Вы ожидаете. Таким образом в нашем случае, мы ищем точно 2, если 1, или 4 еще будут даны, то оператор будет выполняться.
#!/bin/bash
echo "What is your name?"
if [[ $# -ne 2 ]] ; then
read name1
read name2
echo "Are you really "$name1 "??? or" $name2 "?"
else
echo "Are you really "$1 "??? or" $2 "?"
fi