Лучшее руководство по Shell? Variable Переменные оболочки в 2024 году. В этом руководстве вы можете изучить строка Shell,массив Shell,Shell Примечания,
При определении переменной, имя переменной без знака доллара ($, PHP языковые переменные необходимы), такие как:
your_name="w3write.com"
Обратите внимание, что нет пространства между именем переменной и знаком равенства, которые могут быть вам знакомы и все языки программирования не совпадают. Между тем, имя переменной должно следовать этим правилам именования:
Кроме того, чтобы явно прямое назначение, вы можете также присваивать значения переменным с утверждениями типа:
for file in `ls /etc`
Данное заявление имя файла / каталога и т.д. из обращения.
Используйте определенную переменную, до тех пор, как имя переменной предшествует знак доллара, как это:
your_name="qinjx" echo $your_name echo ${your_name}
Имя переменной вне фигурные скобки не являются обязательными, а также без права всех, добавить фигурные скобки, чтобы помочь объяснить граничные переменные идентификации, такие как следующий случай:
for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
Если вы не дают навыков переменных плюс фигурные скобки, написанные эхо "Я хорошо $ skillScript", интерпретатор поставит $ skillScript как переменную (его значение пусто), выполнение кода не является результатом мы ожидаем, что то же самое снова.
Скажите все переменные брекеты, это хорошая практика программирования.
Определяемые переменные, могут быть переопределены, такие как:
your_name="tom" echo $your_name your_name="alibaba" echo $your_name
Запись является законным, но обратите внимание, что, когда второе назначение не может написать $ your_name = "Алибаба", использовать переменную, когда она добавляется знак доллара ($).
Используйте команду ReadOnly переменные можно определить как переменная только для чтения, значение только для чтения переменных не могут быть изменены.
Следующие примеры попытаться изменить переменные только для чтения, причем результаты приведены:
#!/bin/bash myUrl="" readonly myUrl myUrl="http://www.w3write.com"
Запустить скрипт со следующими результатами:
/bin/sh: NAME: This variable is read only.
Используйте отключенное команду для удаления переменной. Синтаксис:
unset variable_name
Переменная не может быть повторно использован после удаления. незадана команда не может удалить переменные только для чтения.
примеров
#!/bin/sh myUrl="http://www.w3write.com" unset myUrl echo $myUrl
Примеры реализации приведенного выше не будет иметь никакого выхода.
При запуске оболочки, будет три параметра одновременно:
программирование Строка оболочки является наиболее распространенным и полезные типы данных (кроме чисел и строк, а также отсутствуют другие типы удобны), строки могут быть заключены в одиночные кавычки, двойные кавычки также могут быть использованы, или не может быть в кавычках. Разница между одно- и двойные кавычки с PHP похож.
str='this is a string'
Строки в одинарных кавычках ограничения:
your_name='qinjx' str="Hello, I know your are \"$your_name\"! \n"
Двойные кавычки преимущества:
your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
string="abcd" echo ${#string} #输出 4
Следующие примеры из первых двух строк символов начала захвата четыре символа:
string="w3big is a great site" echo ${string:1:4} # 输出 unoo
Найти символ "Я или S" позицию:
string="w3big is a great company" echo `expr index "$string" is` # 输出 8
Примечание: Приведенный выше сценарий "` "анти-кавычки , а не одиночные кавычки" ' "Не обманывайтесь, о.
Баш поддерживает одномерный массив (не поддерживает многомерные массивы), и не определяет размер массива.
Подобно языку C, нижний индекс элементов массива от 0 стартового номера. Получает массив элементов, чтобы воспользоваться подстрочный индекс может быть целым числом или арифметическое выражение, значение которого должно быть больше или равно 0.
В Shell, используйте круглые скобки для обозначения массива, элементы массива с символами "космических" разделенных. Общий вид массива определяется следующим образом:
数组名=(值1 值2 ru. 值n)
Например:
array_name=(value0 value1 value2 value3)
или
array_name=( value0 value1 value2 value3 )
Кроме того, можно определить отдельно для каждого компонента массива:
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
Вы не можете использовать непрерывный индекс, и нет никаких ограничений при целевом диапазоне.
Общий формат считывается значение элемента массива:
${数组名[下标]}
Например:
valuen=${array_name[n]}
Используйте символ @ может получить массив всех элементов, таких как:
echo ${array_name[@]}
Получает массив длин длины строки и получить тот же самый путь, например:
# 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
Линия с "#" в начале комментария, будет проигнорирован интерпретатором.
ш нет многострочные комментарии, каждая строка может добавить только знак #. Только как это:
#-------------------------------------------- # 这是一个注释 # author:本教程 # site:www.w3write.com # slogan:学的不仅是技术,更是梦想! #-------------------------------------------- ##### 用户配置区 开始 ##### # # # 这里可以添加脚本描述信息 # # ##### 用户配置区 结束 #####
Если в процессе развития, сталкиваются с большими кусками кода необходимо временно комментировать через некоторое время и раскомментирован, как это сделать?
Каждая строка добавить символ # слишком трудоемко, вы можете поместить код, чтобы быть аннотированный с парой фигурных скобок, определяется как функция, нет места, чтобы вызвать эту функцию, этот код не будет выполняться, и достиг в виде аннотаций эффект.