set -n não está funcionando no shell script ao executar com o código fonte

1

este é o script de shell ..

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

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

ao executar com sh e ./ está executando bem. mas quando eu executei com a fonte.

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

porque a saída está chegando para o script quando eu executei com o comando source (.).

    
por ashok 17.06.2015 / 18:24

1 resposta

1

Citando os documentos sobre o comportamento de um shell interativo :

  
  1. A opção de chamada -n é ignorada e ' set -n ' não tem efeito (consulte O conjunto criado ).
  2.   

Como você criou o script a partir de um shell interativo, set -n é ignorado.

    
por muru 17.06.2015 / 18:29