Domande specifiche per GNU Bourne Again SHell, al contrario di altre shell Bourne / POSIX. Per domande sulle shell Unix in generale, utilizzare invece il tag / shell.
Ho scritto uno script che cambia gli utenti durante l'esecuzione e l'ho eseguito usando il reindirizzamento dei file allo standard in. Così user-switch.shè ... #!/bin/bash whoami sudo su -l root whoami E eseguirlo con bashmi dà il comportamento che mi aspetto $ bash < user-switch.sh vagrant root Tuttavia, se eseguo …
Il mio team è responsabile di migliaia di macchine Linux / Unix, quindi naturalmente l'account di root è "condiviso" tra gli amministratori. Preferisco la modalità vi, altri preferiscono la modalità emacs. Come posso impostare readline di bash in modalità vi al login SSH su qualsiasi macchina, senza costringere tutti gli …
Prima di tagliare le risposte banali ma inapplicabili: non posso usare né il trucco find+ xargsné le sue varianti (come findcon -exec) perché ho bisogno di usare poche espressioni del genere per chiamata. Tornerò su questo alla fine. Ora per un esempio migliore consideriamo: $ find -L some/dir -name \*.abc …
Quando incollo nella mia sessione terminale, la shell esegue immediatamente il comando senza che io prema il tasto Invio. Non so davvero come disabilitare quel comportamento. Sto usando il terminale preinstallato su MacOS Yosemite.
In uno script di shell, la mia comprensione è che si "$@"espande agli argomenti dello script, citandoli secondo necessità. Ad esempio, questo inoltra gli argomenti dello script a gcc: gcc -fPIC "$@" Quando si utilizza la sintassi bash pass-to-stdin <<<, tuttavia, "@$"non funziona come mi aspetto. #!/bin/bash cat <<< "$@" …
Stavo cercando di eseguire una nuova riga usando echoe ho provato a seguire due comandi: Primo comando: echo $'Hello World\nThis is a new line' Risposta: Hello World This is a new line Secondo comando: echo $"Hello World\nThis is a new line" Risposta: Hello World\nThis is a new line La mia …
In bash, noto che se un comando che utilizza il reindirizzamento fallisce, tutti i programmi che vengono eseguiti prima non vengono eseguiti. Ad esempio, questo programma apre il file "a" e scrive 50 byte nel file "a". Tuttavia, eseguendo questo comando con il reindirizzamento su un file con autorizzazioni insufficienti …
Quando uso dfo mount, sono soprattutto interessato alle partizioni del disco fisico. Oggi l'output di questi comandi è sopraffatto da filesystem temporanei e virtuali, cgroups e altre cose che non mi interessano su base regolare. Le mie partizioni fisiche nell'output iniziano sempre con ' /', quindi ho provato a creare …
Ho un terminale bash aperto. Voglio scoprire se l'opzione extglob è abilitata o disabilitata in questa sessione, prima di modificarne il valore. Come posso fare questo?
Sto cercando di utilizzare la sottostringa bash integrata per sostituire l'output di una subshell o di un'altra funzione bash. I seguenti comandi funzionano abbastanza bene in zsh; ma provoca un bad substitutionerrore in bash: ${${PWD##*/}//trunk/latest} o ${$(basename $PWD)//trunk/latest} l'output dovrebbe essere l'ultima cartella di $PWD, sostituita da latestquando la mia …
Devo cercare più file di registro (tutti i file generati nelle ultime 24 ore, tutti mantenuti nella stessa directory) per trovare l'ultima occorrenza di una stringa. Questo è il comando che ho scritto: find . -mtime 1 | grep fileprefix | xargs grep 'search string' | tail -1 Ma questo …
Supponiamo che avvii una bashshell, ... e poi un'altra bashsessione all'interno di quella shell, ... e poi un'altra bashsessione all'interno di quella sessione, ... e poi un'altra bashsessione all'interno di quella sessione, ... (volte N) ecc. Per uscire da tutte le sessioni N devo digitare exitN volte. Come faccio a …
Ho una stringa che è il risultato di un'operazione su cui non ho alcun controllo. Quando stampo questa variabile usando echo, ottengo: echo $myvar hello Tuttavia, quando lo faccio if [ $myvar = "hello" ]; then echo they are equal else echo they are not equal fi Capisco sempre che …
Sto cercando di memorizzare più righe in una variabile bash, ma non sembra funzionare. Ad esempio, se elenco /binun file per riga e lo memorizzo $LS, quindi passo $LScome stdin a wc, restituisce sempre 1: $ ls -1 /bin | wc -l 134 $ LS=$(ls -1 /bin); wc -l <<< …
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.