Domande sulla sostituzione dei comandi della shell (come $ (comando) o `comando`), il suo meccanismo, la sintassi corretta ecc. Da non confondere con l'aliasing.
Esistono due sintassi per la sostituzione dei comandi: con parentesi in dollari e con backtick. In esecuzione top -p $(pidof init)e top -p `pidof init`dà lo stesso output. Sono due modi di fare la stessa cosa o ci sono differenze?
Nel mio ambiente Bash uso variabili contenenti spazi e utilizzo queste variabili nella sostituzione dei comandi. Purtroppo non riesco a trovare la risposta su SE. Qual è il modo corretto di citare le mie variabili? E come devo fare se questi sono nidificati? DIRNAME=$(dirname "$FILE") o cito al di fuori …
Ho un comando che invia i dati a stdout ( command1 -p=aaa -v=bbb -i=4). La linea di uscita può avere il seguente valore: rate (10%) - name: value - 10Kbps Voglio grep quell'output per memorizzare quel 'rate' (immagino che pipe sarà utile qui). E infine, vorrei che quel rate fosse …
Voglio creare un file di registro per uno script cron che ha l'ora corrente nel nome del file di registro. Questo è il comando che ho provato a usare: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log Purtroppo ricevo questo messaggio quando viene eseguito: /bin/sh: -c: line 0: …
#!/bin/bash function0() { local t1=$(exit 1) echo $t1 } function0 echostampa un valore vuoto. Mi aspettavo: 1 Perché alla t1variabile non viene assegnato il valore di ritorno del comando exit - 1?
Sto provando il comando $ b=5; echo `$b`; -bash: 5: command not found ma non stampa 5 come dovrebbe. Cosa mi sto perdendo qui? Cosa significa `(backquote / backtick) nei comandi? sembra dire che `valuta i comandi all'interno e li sostituisce con l'output.
So di poter risolvere questo problema in diversi modi, ma mi chiedo se c'è un modo per farlo usando solo i built-in bash e, in caso contrario, qual è il modo più efficace per farlo. Ho un file con contenuti come AAA B C DDD FOO BAR con ciò intendo …
Come nel seguente esempio, e come nella mia recente domanda In bash, dove è finito il carattere newline finale? , Voglio sapere "perché" succede x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has been "deleted" …
Questa domanda è stata migrata da Server Fault perché può essere risolta su Unix & Linux Stack Exchange. Migrato 2 anni fa . Un metodo di installazione semplice per Docker (ad esempio) è questo: curl -sSL https://get.docker.com/ | sh Tuttavia, ne ho anche visti alcuni che assomigliano a questo (usando …
Considera questo script: #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" Lo script non continua oltre la parentesi graffa di chiusura fino al termine del processo leafpad, anche se si tratta di un processo in background. Perchè è questo? È possibile avviare un processo …
In questa domanda qualcuno segnala un problema usando un documento qui con una parola delimitatore tra virgolette all'interno della $(...)sostituzione del comando , in cui una barra rovesciata \alla fine di una riga all'interno del documento innesca la continuazione della linea che unisce la nuova riga , mentre lo stesso …
Una risposta StackOverflow con> 3.5K voti presenta questo one-liner per l'assegnazione alla DIRdirectory dell'attuale script bash: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Sono perplesso dalle doppie virgolette nidificate. Per quanto ne so, i seguenti frammenti sono tra virgolette: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... …
for k in {0..49}; do a=$(($((2*$k))+1)); echo $a; done Ciao, ho bisogno di un'espressione semplificata per la terza riga, forse una che non usa la sostituzione dei comandi.
È giunto il momento di risolvere questo enigma che mi dà fastidio da anni ... L'ho incontrato di tanto in tanto e ho pensato che fosse la strada da percorrere: $(comm "$(arg)") E ho pensato che il mio punto di vista fosse fortemente supportato dall'esperienza. Ma non ne sono più …
Comprendo che la $(...)sintassi di sostituzione dei comandi più moderna è preferita rispetto alla `sintassi precedente, a causa della nidificazione più facile e meno soggetta a errori e della sintassi di escape. Inoltre, sembra che la maggior parte delle /bin/shshell in stile moderno supporti $(…): bash ash (e quindi BusyBox, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.