Questions marquées «shell-script»

Questions sur les scripts shell, les fichiers exécutables qui sont interprétés par un shell (bash, zsh, etc.).

4
dirname et basename vs expansion de paramètres
Y a-t-il une raison objective de préférer une forme à l'autre? Performance, fiabilité, portabilité? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" Produit: /some/long/path/to /some/long/path/to a_file a_file (v1 utilise l'expansion des paramètres du shell, v2 utilise des binaires externes.)


3
Que signifie $ {1: 0: 2} dans ce contexte?
Je regarde le code affiché ci-dessous et il vérifie l'entrée si les arguments de ligne / colonne commencent par soit -rou -c. Que ${1:0:2}signifie dans ce contexte? rowArgName="-r" colArgName="-c" if [ "${1:0:2}" != $rowArgName ] && [ "${1:0:2}" != $colArgName ] then echo $correctCmdMsg >&2 exit 1 fi


2
Comment ls sans récursivité
J'essaie de ls certains fichiers avec un modèle dans un répertoire. Je veux seulement scanner le premier niveau non récursif. Mon script: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done La commande ci-dessus balaye récursivement. Comment peut-il faire uniquement pour analyser le répertoire de premier niveau?
19 bash  shell-script  ls 

9
Tester si plusieurs variables sont définies
Je voudrais m'assurer qu'à un certain point d'un script, après avoir sourcecréé un fichier de configuration, plusieurs variables sont définies et, si ce n'est pas le cas, arrêter l'exécution en informant l'utilisateur de la variable manquante. j'ai essayé for var in $one $two $three ; do ... mais si par …

8
Éviter l'attente occupée dans bash, sans la commande sleep
Je sais que je peux attendre une condition pour devenir vrai en bash en faisant: while true; do test_condition && break sleep 1 done Mais il crée 1 sous-processus à chaque itération (sommeil). Je pourrais les éviter en faisant: while true; do test_condition && break done Mais il utilise beaucoup …









En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.