Ne ho usati due esempi e mi chiedo cosa faccia ciascuno:
service=~mv ~/Desktop/Service$version.tgz $service
Cosa fa il piccolo cigolio ~?
Quindi, dopo quello, cosa farebbe cd $service?
Ne ho usati due esempi e mi chiedo cosa faccia ciascuno:
service=~
mv ~/Desktop/Service$version.tgz $service
Cosa fa il piccolo cigolio ~?
Quindi, dopo quello, cosa farebbe cd $service?
Risposte:
La cosa agitata si chiama "tilde".
Si espande nella tua home directory.
Provare
echo ~
echo $HOME
Entrambe le istruzioni mettono la tua home directory da sola su una linea ..
Vedi bash Tilde Expansion per i dettagli.
Lo "squiggly" si chiama tilde. Viene utilizzato per fare riferimento alla directory home che su Linux è normalmente /home/username . Inoltre è memorizzato nella $HOMEvariabile d'ambiente. L'espansione nella ~posizione della directory home è il lavoro della shell (come zsh o bash) o del file manager (come Nautilus) e non del filesystem o del sistema operativo.
Puoi anche usarlo per fare riferimento alla home directory di un altro utente. Ad esempio, se il nome utente dell'altro utente è bob, è possibile fare riferimento alla loro home directory con ~bob, che verrà espansa in /home/bob/.
Il primo esempio che hai fornito imposta la variabile servicesu ~, quindi corrisponde alla tua home directory. Questo è equivalente a service=/home/usernameo service=$HOME.
Il secondo esempio copia il file ~/Desktop/Service$version.tgz(o /home/username/Desktop/Service$version.tgz) in /home/username. Questo comando è equivalente a:
mv ~/Desktop/Service$version.tgz ~
o
mv ~/Desktop/Service$version.tgz $HOME
o
mv ~/Desktop/Service$version.tgz /home/username/
Il terzo cambierà la directory di lavoro corrente ( $PWD) in /home/username/. Ciò equivale a:
cd /home/username/
o
cd $HOME
In # 1 e # 2: ~ è la tua directory home, quindi se sei qwerty probabilmente sarà la directory / home / qwerty. Quindi prova ls ~a vederlo.
Per # 1: mi sembra che il servizio variabile sia stato definito come home directory.
Ciò significa che dopo che # 2 ha spostato il file tgz dalla sottodirectory Desktop nella directory principale, il numero 3 passa alla directory principale.
Sembra che i comandi stiano facendo quanto segue.
Assegnare una variabile chiamata servizio alla posizione della cartella principale, ad esempio:
/home/user
Sposta il file dal desktop al livello superiore della home directory, ad esempio:
/home/user/Desktop/Service$version.tgz $service
Lo script quindi modifica la directory al livello principale della home directory.
Quindi, tutto lo script che sta facendo è semplicemente ripulire il desktop spostando il file nella /home/usercartella.