Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Призначення значень змінним і константам

Ось тут наші знання про розширення дійсно починають окупитися. Як ми бачили, змінним присвоюються значення таким чином:

змінна=значення

де змінна це ім'я змінної і значення є рядком. На відміну від деяких інших мов програмування, оболонка не піклується про тип даних, присвоєних змінній; він сприймає їх усіх як рядки. Ви можете змусити оболонку обмежити призначення цілими числами за допомогою декларувати з командою -i опція, але, як і встановлення змінних як тільки для читання, це робиться рідко.

Зауважте, що в присвоєнні не повинно бути пробілів між назвою змінної, знаком рівності та значенням. Отже, з чого може складатися вартість? Все, що ми можемо розгорнути в рядок:


a=z

b="a рядок"

c="a рядок і $b"


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

# Призначте рядок "z" змінній a.

# Вбудовані пробіли мають бути в лапках.

# Можуть бути інші розширення, наприклад змінні

# розгорнуто у завдання.

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

# Арифметичне розширення.

# Escape-послідовності, такі як табуляція та новий рядок.

a=z

b="a рядок"

c="a рядок і $b"


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


зображення

В одному рядку можна присвоїти декілька змінних:



a=5 b="a рядок"

a=5 b="a рядок"


Під час розширення імена змінних можуть бути оточені необов’язковими фігурними дужками «{}». Це корисно у випадках, коли ім’я змінної стає неоднозначним через навколишнє середовище.


текст. Тут ми намагаємося змінити назву файлу з мій файл до мій файл1, використовуючи змінну:



[me@linuxbox ~]$ filename="myfile" [me@linuxbox ~]$ торкніться $filename [me@linuxbox ~]$ mv $filename $filename1

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

[me@linuxbox ~]$ filename="myfile" [me@linuxbox ~]$ торкніться $filename [me@linuxbox ~]$ mv $filename $filename1

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


Ця спроба не вдається, оскільки оболонка інтерпретує другий аргумент mv команду як нову (і порожню) змінну. Проблему можна подолати таким чином:



[me@linuxbox ~]$ mv $filename ${filename}1

[me@linuxbox ~]$ mv $filename ${filename}1


Додаючи навколишні дужки, оболонка більше не інтерпретує завершення 1 як частина імені змінної.

Ми скористаємося цією можливістю, щоб додати деякі дані до нашого звіту, а саме дату та час створення звіту та ім’я користувача творця:



#! / бін / баш

# Програма для виведення сторінки системної інформації TITLE="Інформаційний звіт про систему для $HOSTNAME"

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

TIMESTAMP="Створено $CURRENT_TIME, $USER"


луна"

$TITLE

$TITLE

$TIMESTAMP

"

#! / бін / баш

# Програма для виведення сторінки системної інформації TITLE="Інформаційний звіт про систему для $HOSTNAME"

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

TIMESTAMP="Створено $CURRENT_TIME, $USER"


луна"

$TITLE

$TITLE

$TIMESTAMP

"


Найпопулярніші хмарні обчислення ОС на OnWorks: