使用源执行时,set -n 在 shell 脚本中不起作用

使用源执行时,set -n 在 shell 脚本中不起作用

这是 shell 脚本..

#!/bin/bash
set -n
<<COMMENT1
    tHIS IS A MULTILINE COMMENT MAN 

COMMENT1
<<COMMENT1
THII
COMMENT1
:
echo "this is ashok"
echo "${LOGNAME}"

当使用 sh 执行时,./其执行良好。但是当我使用 source 执行时。

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

引用文档关于行为交互的壳:

  1. 调用-n选项将被忽略,并且“ set -n”无效(请参阅内置集合)。

由于您是从交互式 shell 中获取脚本的,因此set -n被忽略。

相关内容