В некоторых случаях, возможно, возникнет необходимость попросить пользователя
что-нибудь ввести. Существуют различные способы выполнения этого. Одним из способов
является следующий:
#!/bin/bash
echo Введите, пожалуйста, Ваше имя
read NAME
echo "Привет, $NAME!"
В качестве варианта Вы можете получать сразу несколько значений с помощью read.
Следующий пример поясняет это:
#!/bin/bash
echo "Введите, пожалуйста, Ваше имя и фамилию"
read FN LN #FN - First Name - имя; LN - Last Name - фамилия
echo "Hi! $LN, $FN !"
В командной строке (или оболочке) попробуйте ввести следующее:
echo 1 + 1
Если Вы рассчитываете увидеть '2', то будете разочарованы.
Что следует выполнить, если возникает необходимость, чтобы BASH произвёл вычисления
над Вашими числами? Решение заключается в следующем:
echo $((1+1))
В результате этого вывод будет более "логичным". Такая запись
используется для вычисления арифметических выражений. Вы также
можете выполнить это следующим образом:
echo $[1+1]
Если Вам необходимо использовать дроби или более сложную математику, то
можно использовать bc для вычисления арифметических выражений.
Когда автор запустил "echo $[3/4]" в командной оболочке, она вернула
значение 0. Это связано с тем, что если bash отвечает, он использует только целые значения.
Если Вы запустите "echo 3/4|bc -l", оболочка вернёт правильное
значение 0.75.
Из сообщения от mike (смотрите раздел "Благодарность"):
Вы всегда используете #!/bin/bash .. Вы могли бы привести пример, каким образом
можно обнаружить, где расположен bash.
Предпочтительнее использовать 'locate bash', но locate имеется не на всех машинах.
'find ./ -name bash' из корневого каталога обычно срабатывает.
Можно проверить следующие расположения:
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/local/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash
(автор не способен сразу придумать какой-либо другой каталог...
Он находил bash в большинстве этих мест на различных системах).
Вы также можете попробовать 'which bash'.
В bash возвратное значение программы сохраняется в специальной
переменной $?.
Данный пример иллюстрирует, как перехватить возвратное
значение программы; автор предположил, что каталог
dada не существует (это также предложил mike).
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
Этот небольшой скрипт представляет все таблицы из всех баз данных
(предполагается, что у Вас установлен MySQL). Кроме того, следует подумать
о способах преобразования команды 'mysql' для использования подходящего имени
пользователя и пароля.
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
Вы можете запускать несколько файлов с помощью команды source.
__TO-DO__
Вперед
Назад
Содержание