Обычно , значение переменной среды SHELL
равно / bin / bash, это означает, что обычная среда оболочки - это Bash , Однако , / bin / sh является ссылкой на Dash, что такое эффект Dash?
Другой вопрос: хотя наша оболочка - это bash, почему из-за тире иногда что-то не получается?
sh
Оболочка sh
символьная ссылка на dash
, который является оболочкой с очень легким местом. Это означает, что это может работать быстро и не будет использовать много памяти. Но встроенные команды - немногие, простые и имеют другой синтаксис по сравнению с более усовершенствованными оболочками (например, bash
).
Обе оболочки (sh
и bash
) полезны, но для различных целей.
bash
При выполнении текстового файла с командами, сценарием оболочки, можно вынудить его работать определенной оболочкой. Иначе это может принять значение по умолчанию к оболочке, которая делает не работает, как предназначено, например, потому что некоторая встроенная команда не существует, или синтаксис для встроенной команды отличается.
Таким образом, для создания сценария оболочки выполненным с bash
, можно вызвать его
путем вызова его от bash
bash shellscriptname
путем записи строки наверху файла, первой строки с содержанием
#!/bin/bash
Это называют 'хижиной'. Хижина может указать на другие оболочки также, например sh
или csh
но также и другие программы, например python
или bc
. Если Вы делаете исполняемый файл файла сценария оболочки
chmod +x shellscriptname
можно выполнить его со следующей командой
./shellscriptname # when in the current directory
path-to-the-script-file/shellscriptname # when somewhere else
shellscriptname # when in a directory in PATH
и это будет выполняться оболочкой или другой программой в хижине.
Они основная точка являются этим bash
предназначен для интерактивного использования, dash
используется для системных сценариев.
bash
идет со всеми из функций, среди которых редактирование строки. У Вас есть определенные ярлыки для удаления слова, перехода к началу строки, и т.д. Это удобно для записи команд в интерактивном режиме. Однако это прибывает в цену производительности, и загрузите времена.
dash
с другой стороны, предназначен для сценариев системы письменности, которые являются быстрыми и портативными, таким образом помощь сохраняют время начальной загрузки коротким, и на Ubuntu она компилируется без редактирования строки, даже без vi
режим редактирования. Таким образом это имеет меньше служебное. bash
способно к выполнению точно тех же сценариев /bin/dash
выполнения (если они записаны с портативным синтаксисом, конечно), но dash
просто быстрее при выполнении этого того же самого.
Обратите внимание, конечно, что пользователи свободны изменить свою оболочку входа в систему через chsh
команда, и Вы не должны придерживаться с bash
если это не то, что Вы предпочитаете.