Командные файлы

Архив WebclubТехнологии2013

Публикация прежнего Webclub · 2013 год. Примеры и сведения сохранены в историческом контексте.

Для того, чтобы текстовый файл можно было использовать как команду, существует несколько возможностей.

Пусть с помощью редактора создан файл с именем "cmd", содержащий одну строку следующего вида:

date; pwd; ls
Можно вызвать shell как команду (!), обозначаемую "sh", и передать ей файл "cmd", как аргумент или как перенаправленный вход, т.е.

$ sh cmd или $ sh .

Введенное вами число воспринимается им не как число, а как последовательность символов(!). Интерпретор не проверяет, что вы ввели. Поэтому в качестве значения переменной может оказаться любая введенная абракадабра или просто нажатие , как значение пустой строки. (Для обеспечения проверки формата ввода следует написать свою команду).

При обращении к shell-переменной необходимо перед именем ставить символ "$". Так команды

echo $var_2
echo var_2
выдадут на экран

ОС UNIX
var_2
И еще один пример. Фрагмент командного файла:

echo "var_2 = $var_2"
выдаст на экран

var_2 = ОС UNIX
В команде "echo" первое использование "var_2" - это просто текст, а второе ("$var_2") - это значение соответствующей переменной.

То что здесь присутствуют пробелы между именем переменной и символом присваивания, а также между символом присваивания и значением, так это потому, что здесь мы имеем дело лишь с текстом, куда подставлены значения переменных. Там, где действительно выполняется присваивание, пробелы в этих местах НЕДОПУСТИМЫ. Присваивание, скажем, w= означает присваивание переменной "w" пустой строки. Но и пустую строку лучше присваивать аккуратно, например w="".

Для того, чтобы имя переменной не сливалось со строкой, следующей за именем переменной, используются фигурные скобки.

Пусть a=/mnt/lab/asu/

тогда

cat /mnt/lab/asu/prim
и

cat ${a}prim
равноценны (т.е. "cat" выдаст на экран содержимое одного и того же файла).

Если также предположить, что в системе есть переменная "prim" и "prim=dir" , то команда

echo ${a}$prim
выдаст на экран

/mnt/lab/asu/dir

 

 

 

Ещё из архива

Архив клуба
веб-разработчиков

HTML, CSS, программирование и история интернета. Публикации прежнего Webclub по своим адресам.

Открыть архив
Сайт на ноутбуке и телефоне