Si tratta dell'utilità Unix "test", invocata anche come "[", o la sua variante di sintassi della shell [[…]]. Per domande sul test di software e configurazioni, utilizzare il tag "testing".
Sono un po 'confuso su cosa fanno questi operatori in modo diverso quando usati in bash (parentesi quadre, parentesi quadre doppie e parentesi quadre). [[ , [ , ( , (( Ho visto la gente usarli su affermazioni come questa: if [[condition]] if [condition] if ((condition)) if (condition)
Sono confuso con l'utilizzo di parentesi singole o doppie. Guarda questo codice: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Funziona perfettamente anche se la stringa contiene uno spazio. Ma quando lo cambio in parentesi singola: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi …
Devo verificare l'esistenza di una variabile in una ifdichiarazione. Qualcosa per l'effetto di: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" E la domanda più vicina a questa era questa , che in realtà non risponde alla mia domanda.
Posso verificare se esiste un file ed è un collegamento simbolico con -L for file in *; do if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi done e se è una directory con -d: for file in *; do …
Sono sempre sorpreso che nella cartella sia /binpresente un [programma. È questo che viene chiamato quando stiamo facendo qualcosa del tipo if [ something ]:? Chiamando [esplicitamente il programma in una shell, chiede un corrispondente ]e quando fornisco la parentesi di chiusura sembra non fare nulla, indipendentemente da ciò che …
Vedo che posso fare $ [ -w /home/durrantm ] && echo "writable" writable o $ test -w /home/durrantm && echo "writable" writable o $ [[ -w /home/durrantm ]] && echo "writable" writable Mi piace usare la terza sintassi. Sono equivalenti in tutti i modi e per tutti i casi negativi …
#!/bin/bash INT=-5 if [[ "$INT" =~ ^-?[0-9]+$ ]]; then echo "INT is an integer." else echo "INT is not an integer." >&2 exit 1 fi Cosa fa il protagonista ~nell'espressione regolare iniziale?
C'è qualche differenza tra questi due. [[ $a == z* ]] e [ $a == z* ] Posso avere un esempio in cui avrebbero output diversi? Inoltre, in che cosa [[ ]]differisce il funzionamento di [ ]?
Sto cercando di verificare se un input è un numero intero e ci ho provato centinaia di volte ma non vedo l'errore in questo. Purtroppo non funziona, attiva l'istruzione if per tutti gli input (numeri / lettere) read scale if ! [[ "$scale" =~ "^[0-9]+$" ]] then echo "Sorry integers …
Sto cercando di scrivere una ifdichiarazione per verificare se ci sono file corrispondenti a un determinato modello. Se esiste un file di testo in una directory, dovrebbe eseguire un determinato script. Il mio codice attualmente: if [ -f /*.txt ]; then ./script fi Per favore, date alcune idee; Voglio solo …
Ero fiducioso del fatto che quotare le stringhe fosse sempre una buona pratica per evitare che la shell la analizzasse. Poi mi sono imbattuto in questo: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Cercando di isolare il problema, ottenendo …
Ho visto la seguente tecnica utilizzata molte volte su molte shell diverse, per verificare se una variabile è vuota: if [ "x$1" = "x" ]; then # Variable is empty fi Ci sono dei vantaggi nell'usarlo più dei canonici if [ -z "$1" ]? Potrebbe essere un problema di portabilità?
Ho una directory con i registri degli arresti anomali e vorrei usare un'istruzione condizionale in uno script bash basato su un comando find. I file di registro sono memorizzati in questo formato: /var/log/crashes/app-2012-08-28.log /var/log/crashes/otherapp-2012-08-28.log Voglio che l'istruzione if ritorni vera solo se esiste un registro degli arresti anomali per un'app …
Sto iniziando con bash e ho trovato quanto segue: if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi Per leggere la sceneggiatura ed eseguirla, so …
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.