Latest web development tutorials

Shell? Variable

Переменные оболочки

При определении переменной, имя переменной без знака доллара ($, PHP языковые переменные необходимы), такие как:

your_name="w3big.com"

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

  • Первый символ должен быть буквой (AZ, AZ).
  • Без пробелов, не используйте подчеркивание (_).
  • Вы не можете использовать знаки препинания.
  • Вы не можете использовать в Баш ключевых слов (команда справки, чтобы просмотреть доступные зарезервированные ключевые слова).

Кроме того, чтобы явно прямое назначение, вы можете также присваивать значения переменным с утверждениями типа:

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="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

Запустить скрипт со следующими результатами:

/bin/sh: NAME: This variable is read only.

Удалить переменную

Используйте отключенное команду для удаления переменной. Синтаксис:

unset variable_name

Переменная не может быть повторно использован после удаления. незадана команда не может удалить переменные только для чтения.

примеров

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

Примеры реализации приведенного выше не будет иметь никакого выхода.

Типы переменных

При запуске оболочки, будет три параметра одновременно:

  • 1) Локальные переменные Локальные переменные , определенные в сценарии или команды действителен только в текущем экземпляре оболочки, другая программа запуска оболочки не может получить доступ к локальным переменным.
  • 2) переменные среды все программы, в том числе оболочки программы начали, может получить доступ к переменным окружения, некоторые приложения требуют переменные окружения для обеспечения их нормальной работы. При необходимости, сценарий оболочки может также определять переменные окружения.
  • 3) переменные оболочки оболочки переменная является специальная переменная задается программой оболочки. оболочки переменную часть переменной окружения, некоторые локальные переменные, чтобы обеспечить нормальную работу оболочки

строка Shell

программирование Строка оболочки является наиболее распространенным и полезные типы данных (кроме чисел и строк, а также отсутствуют другие типы удобны), строки могут быть заключены в одиночные кавычки, двойные кавычки также могут быть использованы, или не может быть в кавычках. Разница между одно- и двойные кавычки с 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

Примечание: Приведенный выше сценарий "` "анти-кавычки , а не одиночные кавычки" ' "Не обманывайтесь, о.


массив Shell

Баш поддерживает одномерный массив (не поддерживает многомерные массивы), и не определяет размер массива.

Подобно языку C, нижний индекс элементов массива от 0 стартового номера. Получает массив элементов, чтобы воспользоваться подстрочный индекс может быть целым числом или арифметическое выражение, значение которого должно быть больше или равно 0.

Определение массивов

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

数组名=(值1 值2 ... 值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]}

Shell Примечания

Линия с "#" в начале комментария, будет проигнорирован интерпретатором.

ш нет многострочные комментарии, каждая строка может добавить только знак #. Только как это:

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

Если в процессе развития, сталкиваются с большими кусками кода необходимо временно комментировать через некоторое время и раскомментирован, как это сделать?

Каждая строка добавить символ # слишком трудоемко, вы можете поместить код, чтобы быть аннотированный с парой фигурных скобок, определяется как функция, нет места, чтобы вызвать эту функцию, этот код не будет выполняться, и достиг в виде аннотаций эффект.