web-dev-qa-db-fra.com

set -n ne fonctionne pas dans le script Shell lors de l'exécution avec la source

c'est le script shell ..

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

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

lors de l'exécution avec le sh et ./ son exécution bien. mais quand j'ai exécuté avec la 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

pourquoi la sortie arrive pour le script quand j'ai exécuté avec la commande source (.).

1
ashok

Citant la documentation sur le comportement d'un shell interactif :

  1. L’option d’invocation -n est ignorée et ‘set -n’ n’a pas d’effet (voir The Built Built ).

Puisque vous avez extrait le script d'un shell interactif, set -n est ignoré.

1
muru