Для системы Fedora, файла /etc/rc.local
содержит команды для погони за системой, загрузил и запустил все сервисы в runlevel. Если Вы надеетесь исправлять полномочия, когда начальные загрузки системы, отбросить chmod -R 755 /run/media
в /etc/rc.local
файл.
/etc/rc.local
рассматривается как сценарий оболочки.
Это показывает содержание специальной переменной $@
, в Bash. Это содержит все параметры командной строки, и эта команда берет все аргументы от второго на и хранит их в переменной, variable
.
Вот exampe сценарий.
#!/bin/bash
echo ${@:2}
variable=${@:3}
echo $variable
Пример выполняется:
./ex.bash 1 2 3 4 5
2 3 4 5
3 4 5
Это - a ksh
функция, также найденная в bash
и последние версии zsh
.
В ksh
и bash
, можно получить доступ к нескольким элементам массива при помощи ${array[@]:first:length}
синтаксис, который расширяется до до length
(или все, если length
опущен), элементы array
массив (в списке элементов массива, отсортированного численно на индексах), начиная с первого с индексом, больше или равным first
. Когда в скалярном контексте (как здесь в присвоении на скалярную переменную) к списку элементов присоединяются с пробелами с bash
и ksh93
и с первым символом $IFS
(или ничто, если $IFS
пусто или пространство, если оно сброшено) с zsh
.
Например:
$ a[23]=a a[5]=b a[235]=c a[45]=d
$ x=${a[@]:12:2}; printf '<%s>\n' "$x"
<a d>
$@
особый случай. $@
массив позиционных параметров ($1
, $2
...). Но при использовании с :
, $0
также включен. Так ${@:1}
совпадает с $@
, нет ${@:0}
как для других массивов.
В zsh
, это немного отличается. zsh
добавленный ksh
синтаксис только недавно для совместимости, но имеет свой собственный синтаксис для выбора диапазонов элементов.
Вопреки ksh
и bash
, zsh
массивы являются другим типом переменной от скалярных переменных, не редки (zsh
имеет ассоциативные массивы как другой тип переменной), и запустите в индексе 1 вместо 0.
Для zsh
, Вы получаете доступ к диапазонам элемента массива с $a[first,last]
(где last
может также быть отрицательным для считания в обратном направлении от конца).
В zsh
,
a[23]=a a[5]=b a[235]=c a[45]=d
создает массив с 235 элементами, большинством из них пустой. $a[12,50]
расширился бы до элементов 12 - 50, и ${a[@]:12:2}
только расширился бы до (пустому) $a[12]
и $a[13]
элементы. Как особый случай, и снова для мобильности с ksh93
и bash
, zsh
также принимает a 0
первый элемент для $@
и обработки, что как $0
.
Так, можно использовать ${a[@]:x:n}
и ${@:x:n}
портативно через все 3 оболочки, но только для неразреженных массивов, и обращают внимание на значение IFS.
vars=( "${@:2}" )
– glenn jackman 30.09.2013, 16:11$@
и${@}
идентичны, хотя последний является "более корректным" синтаксисом. Необходимо использовать скобки с${@:2}
, потому что$@:2
неоднозначно и был бы поэтому интерпретирован как${@}:2
, который не является тем же самым. спасибо – Paddy Landau 30.09.2013, 21:33