«shell-script» etiketlenmiş sorular

Kabuk komut dosyaları, kabuk tarafından yorumlanan yürütülebilir dosyalar (bash, zsh, vb.) İle ilgili sorular.

3
Dizi dizini değişkenine bash shell script loop'tan erişiliyor mu?
Benim bash kabuk betiğinde bir dizi aracılığıyla döngü sırasında dizi dizin değişkenine erişmek istiyorum. myscript.sh #!/bin/bash AR=('foo' 'bar' 'baz' 'bat') for i in ${AR[*]}; do echo $i done Yukarıdaki komut dosyasının sonucu: foo bar baz bat Aradığım sonuç: 0 1 2 3 Bunu başarmak için senaryomu nasıl değiştirebilirim?


3
$ {1: 0: 2} bu bağlamda ne anlama geliyor?
Aşağıda gösterilen koduna arıyorum ve satır / sütun argümanlar ile başlamalı eğer girdi denetler -rveya -c. ${1:0:2}Bu bağlamda ne anlama geliyor? rowArgName="-r" colArgName="-c" if [ "${1:0:2}" != $rowArgName ] && [ "${1:0:2}" != $colArgName ] then echo $correctCmdMsg >&2 exit 1 fi


2
Özyinelemesiz ls
Bir dizinde bir desen ile bazı dosyaları ls çalışıyorum. Ben sadece ilk seviyeyi taramak istiyorum özyinelemeli değil. Senaryom: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done Yukarıdaki komut tekrar tekrar tarama. Sadece birinci seviye dizini taramak nasıl yapılır?
19 bash  shell-script  ls 

9
Birden çok değişkenin ayarlanıp ayarlanmadığını test edin
Bir komut dosyasının belirli bir noktasında source, bir yapılandırma dosyası girdikten sonra , birkaç değişkenin ayarlandığından ve yürütülmediyse, kullanıcıya eksik değişken hakkında bilgi verdiğinden emin olmak istiyorum. denedim for var in $one $two $three ; do ... ancak örneğin $twoayarlanmazsa, döngü hiçbir zaman çalıştırılmaz $two. Bir sonraki denediğim şey for …

8
Uyku komutu olmadan bash'da meşgul beklemekten kaçınma
Ben bash gerçek olması için bir koşul bekleyebilirsiniz biliyorum: while true; do test_condition && break sleep 1 done Ancak her bir yinelemede (uyku) 1 alt işlem oluşturur. Yaparak onlardan kaçınabilirim: while true; do test_condition && break done Ama çok fazla CPU kullanıyor (meşgul bekliyor). Alt süreçlerden ve meşgul beklemeden kaçınmak …


2
Bir uygulamanın $ PATH içinde olup olmadığını nasıl test edebilirim?
Mümkün olduğunca DRY ve shçok çalışmak için tüm başlangıç ​​/ env komut dosyaları yazmaya çalışıyorum : "Ben klonlamak her * nix üzerinde çalışır", mümkün. Bu, orada olmayan bir kodu çalıştırmayı denediğimde, kodun zarif bir şekilde başarısız olduğundan emin olmak anlamına gelir. Bu amaçla programların olup olmadığını test edebilmem gerekiyor. Bir …


4
$ IFS değişkenini “yedeklemek” akıllıca bir yaklaşım mıdır?
Ben her zaman ile $IFSuğraşmak için gerçekten tereddüt ediyorum çünkü küresel bir ürkütücü. Ancak çoğu zaman, bir dizgiyi bir bash dizisine yükleme işlemini hoş ve özlü hale getirir ve bash komut dosyası oluşturma için, özlü olması zor olur. Bu yüzden $IFSbaşka bir değişkenin başlangıç ​​içeriğini "kaydetmeye" ve sonra bir $IFSşey …

8
Birden fazla bash komut dosyasını çağırmak ve bunları paralel olarak çalıştırmak, sırayla değil
: Ben bash komut dosyaları üç (veya daha fazla) olduğunu varsayalım script1.sh, script2.shve script3.sh. Bu senaryoların üçünü de çağırmak ve paralel olarak çalıştırmak istiyorum . Bunu yapmanın bir yolu sadece aşağıdaki komutları yürütmektir: nohup bash script1.sh & nohup bash script2.sh & nohup bash script3.sh & (Genel olarak, komut dosyalarının tamamlanması …

6
Bir bash betiğinden çalıştırıldıklarında yalnızca belirli komutları nasıl yazdırabilirim?
Ben bash komut dosyasında çağırırken iletmek komut satırı bağımsız değişkenleri dayalı çeşitli if ifadeleri var. Hangi komutların çalıştırıldığına ilişkin bir tür çıktıya sahip olmak, if ifadelerinin hepsinden akışı doğrulamak için yararlıdır, ancak mevcut çözümüm bana çok fazla bilgi veriyor . set -vKomut dosyasında kullanmak , komut dosyasında çalıştırıldıkça ekrana yazdırılan …


2
Sıfır olmayan çıkış kodu olmadığı sürece çıkışı bastırın
Program sıfır olmayan bir kodla çıkmadığı sürece çıktıyı (stdout ve stderr) bastırmanın en iyi yolu nedir? Düşünüyorum: quiet_success() { file=$(mktemp) if ! "$@" > "$file" 2>&1; then cat "$file" fi rm -f "$file" } Ve koş quiet_success my_long_noisy_script.shama daha iyi bir yol olup olmadığından emin değilim. Bunun diğer insanların yapması …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.