Установить -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
игнорируется