supergra ha risposto al punto principale, ma potrebbe lasciarti a chiedermi perché vedi il tuo testo risuonato anche se la variabile non è stata impostata. Cioè, hai echo $x
alla fine del tuo pseudonimo, e infatti vedi no
quando inserisci oh no
, ma ciò non significa che l'eco riecheggi la variabile.
Quello che sta accadendo non è che echo
fase di stampa del variabili (vuoto), ma poi echo
è anche recuperando il "no" parte separatamente. Se esegui alias tmp 'echo $1'
e prova tmp hi
, stamperai "hi" perché è come se "echo $ 1 hi".
Per vedere più chiaramente, provare alias tmp 'echo abc $1 def '
e fare tmp hi
di nuovo, e si stamperà "abc def hi". Di nuovo, se provi alias tmp 'echo $1 & which '
e lo usi di nuovo dovresti, a meno che tu non abbia un comando chiamato hi
, vedere qualcosa come "ciao: comando non trovato". o se lo fai tmp ls
vedrai l'output di which ls
.
Un altro esempio: provate alias tmp 'echo $1 & '
e tmp hi
di vedere che in realtà tenta di eseguire hi
come se si trattasse di un comando, che può essere pericoloso se non ti aspettavi che.
Stranamente, ho avuto quella domanda dopo aver letto la risposta accettata. –