Как использовать who / w с неинтерактивными входами по SSH

Да, в этом случае.

Резюме: Строка hash-bang (также называемая "shebang" и другие) когда-либо нужна только в том случае, если она находится в исполняемом скрипте, который запускается без явного указания своего интерпретатора (точно так же, как при выполнении двоичного исполняемого файла).

В случае вашего кода вы явно запускаете скрипт в данном документе с уже bash . Нет необходимости добавлять хэш-банг, так как он будет рассматриваться как комментарий.

Поскольку сценарий здесь-документа, похоже, хочет выполняться с установленной опцией -x (судя по #! / Bin / bash -x ), вам придется используйте set -x внутри здесь-документа, чтобы получить тот же эффект, что и при запуске здесь-документа в качестве собственного сценария, опять же, потому что хэш-взлом обрабатывается как комментарий.

Строка хеш-взлома используется при выполнении исполняемого текстового файла. Строка сообщает системе, какой интерпретатор использовать для ее выполнения, и при необходимости позволяет вам указать один аргумент для этого интерпретатора ( -x в вашем случае).

Вам нужен хэш-удар, если вы пишете здесь-документ в файл, который позже будет использоваться в качестве сценария. Например:

cat >myscript.sh <<

Такой файл также должен быть исполняемым ( chmod + x myscript.sh ). Но опять же, если бы вы явно выполняли этот сценарий с помощью bash , например, через

$ bash ./myscript.sh

или

$ bash -x ./myscript.sh

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

Все сводится к тому, как вы хотите выполнить сценарий.

См. Также статью в Википедии о Shebang .

2
19.09.2015, 19:31
0 ответов

Теги

Похожие вопросы