GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre $HOME et '~' (tilde) ?

Le tilde fait partie d'une extension du shell (comme dans bash, csh, zsh, etc.). Le $HOME variable est exportable et peut être utilisée indépendamment d'un shell spécifique.


Le shell remplace ~ avec le répertoire personnel de l'utilisateur (mise à jour :ou peut-être par le répertoire personnel d'un autre utilisateur, si ~ est suivi d'autre chose qu'un / ), mais seulement s'il s'agit du premier caractère d'un mot.

--with-libmemcached=~ a ~ pas au début, donc le shell le laisse tranquille.


La principale différence est :

cd /tmp
ls "$HOME" #works
ls "~" #nope

Ainsi, le shell ne développe le ~ que dans quelques situations. Dans votre cas, le script python a simplement obtenu ~ à l'intérieur du script - pas la valeur développée.


~ est développé UNIQUEMENT s'il s'agit du premier caractère d'un mot ET s'il n'est pas entre guillemets

$ echo "~"
~
$ echo foo~
foo~
$ echo ~
/home/guest
$ echo ~/foo
/home/guest/foo

~username est étendu au HOME des username .

$ echo ~root
/root
$ echo ~invaliduser
~invaliduser

Pour citer les noms de fichiers, vous devez utiliser $HOME ou citez le suffixe

$ echo "$HOME/foo bar"
/home/guest/foo bar
$ echo ~/"foo bar"
/home/guest/foo bar
$ echo ~root/"foo bar"
/root/foo bar

Notez ce qui suit de "POSIX Tilde Expansion"

Le nom de chemin résultant de l'expansion du tilde doit être traité comme s'il était entre guillemets pour éviter qu'il ne soit modifié par le fractionnement des champs et l'expansion du nom de chemin.


Linux
  1. Différence entre 2>&-, 2>/dev/null, |&, &>/dev/null et>/dev/null 2>&1 ?

  2. Quelle est la différence entre Sudo Su - et Sudo Su - ?

  3. Différence entre Eot et Eof?

  4. Différence entre [0-9], [[:digit:]] et D ?

  5. Différence entre les applications Gtk et Qt ?

Différence entre apt et apt-get expliquée

La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

Différence entre l'expansion de la tuyauterie et de la commande ?

Différence entre snat et mascarade?

Différence entre Qemu et KVM

différence entre netstat et ss sous linux?