Установить -n не работает в сценарии оболочки при выполнении с исходным кодом
Это скрипт оболочки..
#!/bin/bash
set -n
<<COMMENT1
tHIS IS A MULTILINE COMMENT MAN
COMMENT1
<<COMMENT1
THII
COMMENT1
:
echo "this is ashok"
echo "${LOGNAME}"
при выполнении с ш и ./ его исполнение хорошо. но когда я выполнил с источником.
ashokkrishna@09:45:56:~/Desktop$ sh hello.sh
ashokkrishna@09:46:02:~/Desktop$ ./hello.sh
ashokkrishna@09:46:23:~/Desktop$ . hello.sh
this is ashok
ashokkrishna
почему вывод идет для сценария, когда я выполняю с помощью команды source(.).
1 ответ
Решение
Цитирование документов о поведении интерактивной оболочки:
-nопция вызова игнорируется, а 'set -n'не имеет никакого эффекта (см. Построение Сета).
Так как вы получили сценарий из интерактивной оболочки, set -n игнорируется