Fondamentalmente, voglio "cogliere" la prima occorrenza -infdall'elenco dei parametri. (I restanti parametri verranno passati a un comando diverso.) Lo script che ho ha la seguente struttura: #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break fi <CODE> done <CODE> …
Ho un'applicazione wrapper in cui devo consentire all'utente di specificare opzioni personalizzate da passare a un simulatore. Tuttavia, voglio assicurarmi che l'utente non immetta altri comandi attraverso le opzioni utente. Qual è il modo migliore per raggiungere questo obiettivo? Per esempio. L'utente fornisce: -a -b L'applicazione esegue: mysim --preset_opt -a …
Sono confuso su come includere argomenti / flag opzionali quando si scrive uno script bash per il seguente programma: Il programma richiede due argomenti: run_program --flag1 <value> --flag2 <value> Tuttavia, ci sono diversi flag opzionali: run_program --flag1 <value> --flag2 <value> --optflag1 <value> --optflag2 <value> --optflag3 <value> --optflag4 <value> --optflag5 <value> …
Funziona su un prompt della shell (bash, dash): [ -z "" ] && echo A || echo B A Tuttavia, sto provando a scrivere uno script di shell POSIX , inizia così: #!/bin/sh [ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1 readonly raw_input_string=${1} …
Dato questo pezzo di bash: PARMS='-rvu' PARMS+=" --delete --exclude='.git'" echo $PARMS rsync ${PARMS} . ${TARGET} L'eco mostra la stringa PARMS come previsto, non viene visualizzato alcun errore, ma rsync agisce silenziosamente come se le opzioni aggiunte da + = non esistessero. Tuttavia, funziona come previsto: PARMS='-rvu' rsync ${PARMS} --delete --exclude='.git' …
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 …
Sono su Ubuntu. Ho copiato alcuni argomenti (separati da newline) e posso usare xsel per stamparli in questo modo $ xsel arg1 arg2 arg3 arg4 ... Ora, voglio usare ciascuno di questi argomenti per un altro comando ed eseguire quel comando tutte le volte che ci sono argomenti. Quindi ci …
Sto cercando di trovare come registrare un'istanza specifica di rrdtoolper vedere se il percorso che sta ricevendo non è corretto. So che avrei potuto avvolgere il file eseguibile in uno script shell che avrebbe registrato i parametri, ma mi chiedevo se ci fosse un modo più specifico per il kernel …
Ho una directory con file dall'anno 2010 .. Voglio eliminare tutti i file più vecchi di 500 giorni e ho provato questo: find /var/log/arc/* -type f -mtime +500 -delete {}\; Ma ottengo questo: -bash: /usr/bin/find: Argument list too long Come so, questo significa che ci sono troppi file e findnon …
Ho la seguente funzione: bar() { echo $1:$2; } Sto chiamando questa funzione da un'altra funzione foo,. foosi chiama come segue: foo "This is" a test Voglio ottenere il seguente output: This is:a Cioè, gli argomenti che barriceve dovrebbero essere gli stessi token in cui passo foo. Come foodeve essere …
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 …
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 <<< "$@" …
Sto usando findper individuare ed eliminare i file di backup, ma desidero escludere determinate directory dalla ricerca. I nomi dei file di backup possono terminare in .bck, bak, ~o backup. Il codice di esempio di lavoro minimo (MWE) con solo tre directory da escludere è: #! /bin/bash find . -type …
A seguito di ARG_MAX, la lunghezza massima degli argomenti per un nuovo processo sembra ARG_MAXerroneamente (o almeno ambiguamente) definita sul mio Mac Mini 3,1 con Ubuntu 12.04: $ getconf ARG_MAX # arguments 2097152 $ locate limits.h | xargs grep -ho 'ARG_MAX[ \t]\+[0-9]\+' | uniq | cut -d ' ' -f …
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.