Верхний регистр S - то, потому что каталог не имеет, выполняют полномочия для группы. В некотором роде это указывает на "ошибку", как Вы говорите:
недавно созданные субфайлы наследовали ту же группу как каталог, и недавно созданные подкаталоги наследовали бит идентификатора группы набора родительского каталога.
(источник: https://www.gnu.org/software/coreutils/manual/html_node/Directory-Setuid-and-Setgid.html)
Однако Вы отрицаете, что разрешение для элементов группы вводит каталог.
Ваш терминал выполняет оболочку (по всей вероятности bash
), который является тем, просящим Ваши команды, и выполняет их.
Кроме того, этого интерактивного режима можно также использовать оболочку для команд выполнения из файла. Для выполнения команд в файле, можно или назвать оболочку непосредственно как bash script
или можно запустить файл с "хижины" #!/bin/bash
и сделайте это исполняемым файлом (chmod +x script
). Затем можно рассматривать сценарий как двоичный файл и выполнить его, например, как ./script
или помещенный это в место, где Вы окружаете, ищет его. (echo $PATH
)
По всей вероятности и Ваша интерактивная оболочка и оболочка раньше работали, bash
. С точки зрения "первого дня, изучая Linux" удар работает точно то же в обоих режимах. - Намного позже Вы могли бы споткнуться о незначительных различиях. Если бы Вы действительно хотите знать о подробно, я предложил бы читать man bash
и поиск мест, упоминающих "интерактивный". (Можно искать страницу справочника путем нажатия /
.)
Одна важная вещь отметить состоит в том, что скрипт запущен как новый процесс. Это особенно означает, что набор переменных в сценарии не видим в оболочке вызова.
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
Без экспорта a
даже не видимо к внутреннему сценарию.
В целом ответ был бы "нет", команды в оболочке являются тем же в сценариях в синтаксисе и семантике.
Но существует набор маленьких нюансов, связанных с конфигурацией среды (какие переменные привыкли и к тому, что они установлены).
интерактивная предпочтительная оболочка для Linux является ударом, но пишущий сценарий часто использует другие интерпретаторы (sh
, который является предшественником bash
, ksh
, который на одном уровне с ударом), таким образом, необходимо принять во внимание, какая оболочка используется (текущая оболочка s, имя традиционно сохранено в переменной SHELL
, попытайтесь ввести echo $SHELL
).
могут быть различия в конфигурации того же интерпретатора для интерактивной сессии и для выполнения сценария.
Нет. Сценарий является списком команд, которые можно ввести в терминале.
Можно вставить все количество сценария в терминале, и результат совпадет с выполнением его.
Обратно пропорционально можно "сохранить" терминальные команды в файле и превратить его в допускающий повторное использование сценарий и совместно использовать его с семейством и друзьями.
source script_file
. который отредактирует огибающий Вар в текущем контексте. при запущении скрипта как ./script_file
не изменит ENV, если export
используется явно.
– Mathieu J.
27.12.2012, 04:34
export
для сценария не возможно изменить любые переменные оболочки вызова. То же идет для вещей как PWD, определенные псевдонимы, функции и подобные вещи. Они могут быть изменены только в интерактивном режиме или путем определения источника файла. Но да, который является, вероятно, ничем, что кто-то наткнется на первый день. :)
– michas
27.12.2012, 10:29