Domande sulla sostituzione dei comandi della shell (come $ (comando) o `comando`), il suo meccanismo, la sintassi corretta ecc. Da non confondere con l'aliasing.
Sto cercando di invocare una sceneggiatura con un elenco di nomi di file raccolti da find. Niente di speciale, solo qualcosa del genere: $ myscript `find . -name something.txt` Il problema è che alcuni dei nomi dei percorsi contengono spazi, quindi vengono divisi in due nomi non validi durante l'espansione …
Rispondere a questa domanda mi ha portato a porre un'altra domanda: ho pensato che i seguenti script facessero la stessa cosa e il secondo dovrebbe essere molto più veloce, perché il primo usa catche deve aprire il file più e più volte ma il secondo apre solo il file una …
Il codice seguente descrive al meglio la situazione. Perché l'ultima riga non sta emettendo il carattere finale newline finale? L'output di ogni riga è mostrato nel commento. Sto usando GNU bash, versione 4.1.5 echo -n $'a\nb\n' | xxd -p # 610a620a x=$'a\nb\n' ; echo -n "$x" | xxd -p # …
Secondo questo manuale di riferimento : -E (anche -o errtrace) Se impostato, qualsiasi trap su ERR viene ereditato da funzioni shell, sostituzioni di comandi e comandi eseguiti in un ambiente subshell. La trappola ERR non viene normalmente ereditata in questi casi. Tuttavia, devo interpretarlo in modo errato, perché non funziona: …
Sto cercando di eseguire grep su un elenco di alcune centinaia di file: $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php Tuttavia, anche se sto cercando una stringa che so essere trovata nei file, quanto segue non cerca i file: $ grep -i 'foo' <(cat files.txt) $ grep -i …
Supponiamo che devo usare le virgolette per incapsulare l'output della subshell come: DATA="$(cat file.hex | xxd -r)" Ma ho bisogno di nidificare questo tipo di cose come: DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" Non posso usare le virgolette singole perché quelle non espandono le variabili che …
Dato cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))' le conchiglie tendono ad avere bisogno di fare 2 forchette per farlo accadere strace-f(){ strace -f "$@" 2>&1; }; for sh in dash bash zsh ksh; do printf "$sh\t" ; strace-f $sh -c "$cmd" |grep -e clone -e fork -c; done …
C'è un modo per specificare più variabili (non solo numeri interi) nei forloop in bash? Potrei avere 2 file contenenti testo arbitrario con cui avrei bisogno di lavorare. Ciò di cui ho bisogno funzionalmente è qualcosa del genere: for i in $(cat file1) and j in $(cat file2); do command …
A seguito di: comportamento imprevisto nella sostituzione del comando shell Ho un comando che può prendere un enorme elenco di argomenti, alcuni dei quali possono legittimamente contenere spazi (e probabilmente altre cose) Ho scritto uno script che può generare questi argomenti per me, con virgolette, ma devo copiare e incollare …
Sto cercando di capire come Bash tratta esattamente la seguente riga: $(< "$FILE") Secondo la pagina man di Bash, ciò equivale a: $(cat "$FILE") e posso seguire la linea di ragionamento per questa seconda linea. Bash esegue l'espansione variabile attivata $FILE, inserisce la sostituzione del comando, passa il valore di …
Vedi i seguenti esempi e i loro output nelle shell POSIX: false;echo $?oppure false || echo 1:1 false;foo="bar";echo $?oppure foo="bar" && echo 0:0 foo=$(false);echo $?oppure foo=$(false) || echo 1:1 foo=$(true);echo $?oppure foo=$(true) && echo 0:0 Come menzionato dalla risposta più votata su /programming/6834487/what-is-the-variable-in-shell-scripting : $? viene utilizzato per trovare il …
Ho visto costrutti in script come questo: if somevar="$(somecommand 2>/dev/null)"; then ... fi Questo è documentato da qualche parte? Come viene determinato lo stato di ritorno di una variabile e come si collega alla sostituzione dei comandi? (Ad esempio, otterrei lo stesso risultato con if echo "$(somecommand 2>/dev/null)"; then?)
Vorrei usare la sostituzione variabile su una particolare stringa a cui accedo tramite un comando. Ad esempio, se copio qualcosa negli appunti, posso accedervi in questo modo. $ xclip -o -selection clipboard Here's a string I just copied. Se lo assegno a una variabile, allora posso fare la sostituzione della …
Stavo solo cercando di elencare tutte le directory e i file nella directory corrente e anche di scrivere se sono file o directory con il seguente comando: find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \; So che è un comando …
Quando faccio ls | grep pngl'output di grep è: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (Nome del file, ritorno a capo, il nome del file, nuova riga) quindi, echo $(ls | grep png)genera: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (nome file, spazio dalla suddivisione in parole, nome file, newline !! da echo !!) Va tutto bene, ma quando …
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.