GNU/Linux >> Linux Esercitazione >  >> Linux

La differenza tra '$ . Foo' E '$ ./foo'??

Questa domanda ha già risposte qui :Qual è la differenza tra il reperimento ('.' o 'sorgente') e l'esecuzione di un file in bash?

(5 risposte)
Chiuso 6 anni fa.

t è un semplice script
Cosa c'è di diverso tra i due casi seguenti:

$ .  t

e

$ ./t

Risposta accettata:

. t non aprirà una nuova shell per eseguire t, quindi tutte le variabili create o modificate rimarranno dopo l'esecuzione. t verrà cercato in $PATH, quindi se volevi eseguire t dal percorso in cui ti trovi in ​​questo momento il comando avrebbe dovuto essere . ./t

./t eseguirà t che si trova nel percorso in cui stiamo generando una shell per l'esecuzione.

Per chiarire un po' di più. Supponiamo che t contenga:

#!/bin/bash 
data=hello 

Dopo esegui ./t puoi echo $data dalla riga di comando e non otterrai nulla, ma se esegui . ./t ed esegui echo $data riceverai un saluto sul tuo schermo.


Linux
  1. Qual è la differenza tra InnoDB e MyISAM?

  2. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  3. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  4. Qual è la differenza tra /sbin/nologin e /bin/false?

  5. La differenza tra .exrc e .vimrc?

Qual è la differenza tra Linux e Unix?

La differenza tra "du -sh *" e "du -sh ./*"?

La differenza tra /opt e /usr/local?

La differenza tra "env" e "printenv"?

Differenza tra /etc/crontab e crontab -e

Differenza tra /bin e /usr/bin