Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Вы можете объявлять локальные переменные в функциях командной оболочки с помощью ключевого слова
local
#!/bin/sh
<i>sample_text="global variable" </i>
foo() {
local sample_text="local variable"
echo "Function foo is executing"
<i> echo $sample_text</i>
}
echo "script starting"
<i>echo $sample_text</i>
foo
echo "script ended"
<i>echo $sample_text</i>
exit 0
При отсутствии команды
return
В следующем сценарии, my_name, показано, как в функцию передаются параметры и как функции могут вернуть логический результат
true
false
1. После заголовка командной оболочки определите функцию
yes_or_no
#!/bin/sh
yes_or_no() {
echo "Is your name $* ? "
while true
do
echo -n "Enter yes or no: "
read x
case "$x" in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo "Answer yes or no"
esac
done
}
2. Далее начинается основная часть программы.
echo "Original parameters are $*"
if yes_or_no "$1"
then
echo "Hi $1, nice name"
else
echo "Never mind"
fi
exit 0
Типичный вывод этого сценария может выглядеть следующим образом:
$ <b>./my_name Rick Neil</b>
Original parameters are Rick Neil
Is your name Rick ?
Enter yes or no:<b> yes</b>
Hi Rick, nice name
$
Как это работает
Когда сценарий начинает выполняться, функция определена, но еще не выполняется. В операторе
if
yes_or_no
$1
Rick
$1
$2
if
Как видите, у командной оболочки есть большой набор управляющих структур и условных операторов. Вам необходимо познакомиться с некоторыми командами, встроенными в оболочку; после этого вы будете готовы решать реальные программистские задачи без компилятора под рукой!
Команды
В сценариях командной оболочки можно выполнять два сорта команд. Как уже упоминалось, существуют "обычные" команды, которые могут выполняться и из командной строки (называемые внешними командами), и встроенные команды (называемые внутренними командами). Внутренние команды реализованы внутри оболочки и не могут вызываться как внешние программы. Но большинство внутренних команд представлено и в виде автономных программ, это условие — часть требований стандарта POSIX. Обычно, не важно, команда внешняя или внутренняя, за исключением того, что внутренние команды действуют эффективнее.
В этом разделе представлены основные команды, как внутренние, так и внешние, которые мы используем при написании сценариев. Как пользователь ОС Linux, вы, возможно, знаете много других команд, которые принимает командная строка. Всегда помните о том, что вы можете любую из них применить в сценарии в дополнение к встроенным командам, представленным в данном разделе.
Используйте команду
break
for
while
until
break
break
#!/bin/sh
rm -rf fred*
echo > fred1
echo > fred2
mkdir fred3
echo > fred4
for file in fred*
do
if [ -d "$file" ]; then