Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Присвоение значений переменным и константам

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

переменная=ценностное

в котором переменная это имя переменной и ценностное это строка. В отличие от некоторых других языков программирования, оболочка не заботится о типе данных, присвоенных переменной; он рассматривает их все как строки. Вы можете заставить оболочку ограничить присваивание целыми числами, используя объявлять команда с -i вариант, но, как и установка переменных только для чтения, это делается редко.

Обратите внимание, что в присвоении не должно быть пробелов между именем переменной, знаком равенства и значением. Так из чего может состоять ценность? Все, что можно разложить в строку:


а = г

b = "строка"

c = "строка и $ b"


d = $ (ls -l foo.txt) e = $ ((5 * 7)) f = "\ t \ ta строка \ n"

# Присвойте строку "z" переменной a.

# Встроенные пробелы должны быть заключены в кавычки.

# Другие расширения, такие как переменные, могут быть

# развернуто в задание.

# Результаты команды.

# Арифметическое расширение.

# Экранирующие последовательности, такие как табуляция и перевод строки.

а = г

b = "строка"

c = "строка и $ b"


d = $ (ls -l foo.txt) e = $ ((5 * 7)) f = "\ t \ ta строка \ n"


изображение

В одной строке можно выполнить несколько назначений переменных:



a = 5 b = "строка"

a = 5 b = "строка"


Во время раскрытия имена переменных могут быть заключены в необязательные фигурные скобки «{}». Это полезно в случаях, когда имя переменной становится неоднозначным из-за окружающего его контекста.


текст. Здесь мы пытаемся изменить имя файла с мой файл в мой файл1, используя переменную:



[я @ linuxbox ~] $ filename = "myfile" [я @ linuxbox ~] $ коснитесь $ filename [я @ linuxbox ~] $ mv $ имя_файла $ имя_файла1

mv: отсутствует операнд конечного файла после myfile. Для получения дополнительной информации попробуйте mv --help.

[я @ linuxbox ~] $ filename = "myfile" [я @ linuxbox ~] $ коснитесь $ filename [я @ linuxbox ~] $ mv $ имя_файла $ имя_файла1

mv: отсутствует операнд конечного файла после myfile. Для получения дополнительной информации попробуйте mv --help.


Эта попытка не удалась, потому что оболочка интерпретирует второй аргумент mv как новую (и пустую) переменную. Проблему можно решить так:



[я @ linuxbox ~] $ mv $ имя_файла $ {имя_файла} 1

[я @ linuxbox ~] $ mv $ имя_файла $ {имя_файла} 1


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

Мы воспользуемся этой возможностью, чтобы добавить некоторые данные в наш отчет, а именно дату и время создания отчета и имя пользователя создателя:



#! / Bin / Баш

# Программа для вывода страницы с системной информацией TITLE = "Отчет о системной информации для $ HOSTNAME"

CURRENT_TIME = $ (дата + "% x% r% Z")

TIMESTAMP = "Создано $ CURRENT_TIME, $ USER"


эхо "

$ TITLE

$ TITLE

$ TIMESTAMP

"

#! / Bin / Баш

# Программа для вывода страницы с системной информацией TITLE = "Отчет о системной информации для $ HOSTNAME"

CURRENT_TIME = $ (дата + "% x% r% Z")

TIMESTAMP = "Создано $ CURRENT_TIME, $ USER"


эхо "

$ TITLE

$ TITLE

$ TIMESTAMP

"


Лучшие облачные вычисления для ОС в OnWorks: