Diciamo che voglio eseguire un comando tramite Bash in questo modo: /bin/bash -c "ls -l" Secondo la pagina man di Bash, potrei anche eseguirlo in questo modo: # don't process arguments after this one # | pass all unprocessed arguments to command # | | # V V /bin/bash -c …
Utilizzando findcon grep, è possibile individuare i file che corrispondono a un modello: # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log Tuttavia, utilizzando findda solo il primo file non viene trovato: # find . -name error* ./error_log ./includes/classes/error_log Perché non findindividuare il errors.htmlfile quando non utilizzato con grep? Come viene …
Ho uno script che legge un flusso di testo e genera un file di comandi sed che verrà successivamente eseguito con sed -f. I comandi sed generati sono come: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g Supponiamo che lo script che genera i sedcomandi sia qualcosa del tipo: while read cid fileid do cidpat="$(echo …
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 )" ... …
Sto usando sed per trovare e sostituire i pattern nei file SAS che ho piuttosto che cambiarli individualmente. Il problema è che sto cercando di sostituire le variabili macro e quando uso la e commerciale non viene elaborata correttamente. Here's my code: sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas ogni volta che eseguo …
Voglio assegnare dinamicamente i valori alle variabili usando eval. Il seguente esempio fittizio funziona: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Tuttavia, quando il valore della variabile contiene spazi, evalrestituisce un errore, anche se $var_valueviene inserito tra virgolette doppie: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command …
Ho definito alcune variabili d'ambiente nel mio .profile in questo modo: MY_HOME="/home/my_user" ma la variabile non sembra valutare se non rimuovo le virgolette e rinnovo il file. Credo che le virgolette siano necessarie se ci saranno spazi, e le virgolette singole vengono utilizzate se non si desidera scappare. Qualcuno può …
Ho letto che dovrei citare le variabili in bash, ad esempio "$ foo" invece di $ foo. Tuttavia, mentre scrivevo una sceneggiatura, ho trovato un caso in cui funziona senza virgolette ma non con loro: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command …
La regola generale nello scripting della shell è che le variabili dovrebbero essere sempre quotate a meno che non ci sia un motivo convincente per non farlo. Per maggiori dettagli di quelli che probabilmente vorresti sapere, dai un'occhiata a queste fantastiche domande e risposte: implicazioni sulla sicurezza di dimenticare di …
Questo post contiene in realtà due domande separate, ma penso che raggrupparle insieme darà un po 'più di contesto. Ho affrontato questa domanda sulle virgolette attorno alle variabili ma non capisco bene cosa significhi l' espansione delle variabili . Quindi la mia prima domanda è: Che cos'è l' espansione variabile …
Nella sezione 3.1.2.3 intitolata Double Quotes, il manuale di Bash dice: Racchiudere i caratteri tra virgolette doppie ('"') conserva il valore letterale di tutti i caratteri tra virgolette, ad eccezione di '$', '`', '\' e, quando l'espansione della cronologia è abilitata, '!'. Al momento mi occupo dell'unica citazione ( '). …
È 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ù …
Oggi sono tornato a casa dal lavoro (eseguo bash su una casella Ubuntu) e ho provato a eseguire un po 'di codice sulla mia casella di arco locale con la mia amata zsh e i comandi non andavano a buon fine? Il comando è sotto con le informazioni personali e …
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 …
Sto usando GNU bash 4.3.48. Considera i seguenti due comandi che differiscono solo per un singolo simbolo di dollaro. Comando 1: echo "(echo " * ")" Comando 2: echo "$(echo " * ")" Il loro output è, rispettivamente (echo test.txt ppcg.sh ) e * Quindi, ovviamente, nel primo caso *è …
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.