«shell-script» etiketlenmiş sorular

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

3
BASH ve Satır Başı Davranışı
Kısa bir sorum var. Bash'ın (4.4.11 kullanıyorum) düz / ayrılmış / sonlu satır / metin görüntülememesi normal \rmi? Bu davranışı görmek biraz şaşırdı: $ a=$(printf "hello\ragain\rgeorge\r\n") $ echo "$a" george Ama "tekrar merhaba" metni hala orada, bir şekilde "gizli": $ echo "$a" |od -w32 -t x1c 0000000 68 65 6c …

2
Dizinin adının dinamik olduğu (yani bir değişkende depolanan) bash dizisindeki öğe sayısını sayma
Sorunun kısa açıklaması: Orada yerleşik mı bash yönteminin dizinin adı (yani bir değişkende saklanır) dinamiktir bash dizi öğe sayısını saymak için, olmadan tam dizinin kopya yapmadan veya kullanarak başvurmadan eval? Daha fazla bilgi: Bash parametresi ikamesini kullanarak aşağıdakileri yapabilirsiniz: Bir dizinin uzunluğunun belirlenmesi: myArr=(A B C); echo ${#myArr[@]}. Bir değişkeni …

4
Find kullanarak bulunan dosyaların içeriğini nasıl tek bir dosyada toplayabilirim?
Değerli verileri tutan bir bölümü yeniden biçimlendirerek kendimi acı çektiği yere (gerçekten kötü) vurmayı başardım. Tabii ki kasıtlı değildi, ama oldu. Ancak, verilerin çoğunu kullanmayı testdiskve photoreckurtarmayı başardım . Şimdi tüm bu veriler neredeyse 25.000 dizin üzerinde dağıtıldı. Dosyaların çoğu .txt dosyası, geri kalanı ise görüntü dosyalarıdır. Her dizinde 300'den …

4
Telnet bağlantı noktasının kabuk betiğinde etkin olup olmadığını sınama
Telnet ile giriş yapmanın mümkün olup olmadığını test etmek için bir komut dosyası oluşturmaya çalışıyorum. Gerçekten giriş yapmak istemiyorum; bu nedenle beklemeye gerek yoktur. Sadece bir giriş istemi alıp alamayacağımı görmek istiyorum. Bu bir Linux sisteminden yapılıyor, bu yüzden kullanmaya çalışıyorum nc: nc 192.168.10.5 23 -w 1 | grep -q …


7
$ 0 her zaman komut dosyasının yolunu içerecek mi?
Üstteki yorumlar bölümünden yardım ve sürüm bilgilerini yazdırabilmek için geçerli komut dosyasını grep etmek istiyorum. Ben böyle bir şey düşünüyordum: grep '^#h ' -- "$0" | sed -e 's/#h //' Ama sonra komut dosyası PATH olan bir dizinde bulunmuşsa ve dizini açıkça belirtmeden çağrılırsa ne olacağını merak ettim. Özel değişkenlerin …

1
bash'de olduğu gibi POSIX'te dolaylı değişken genişleme?
Bash'te yapılabileceği gibi POSIX'te dolaylı değişken genişleme yapmak mümkün mü yoksa zarif bir kesmek var mı? Bağlam için aşağıdakileri yapmaya çalışıyorum: for key in ${!map_*} do # do something done EDIT: Açıklığa kavuşturmak için, ile başlayan kabuk değişkenlerine erişmek istiyorum map_.

4
Kabuk Betiklerinde İlişkisel Diziler
Bir kabuk komut dosyasında ilişkilendirilebilir diziler uygulamak için bir hile gördüm. Örneğin , anahtar = elmalar print array["apples"]gibi yazılabilir echo \$array$key. Bununla birlikte, dizi üzerinde yineleme yapmak için anahtarların nasıl oluşturulacağından bahsedilmedi. Düşünebildiğim tek yol, anahtarları boşluklarla ayrılmış bir değişkente saklamaktı, böylece dizi üzerinde yineleme yapmak için bir for-loop kullanabilirsiniz. …

3
Ortam değişkenine dayalı koşullu atama
Bir bash betiğinde, değer bir dış, genel ortam değişkenine ( $MYAPP_ENV) bağlı olacak şekilde yerel bir değişken atarım . if [ "$MYAPP_ENV" == "PROD" ] then SERVER_LOGIN=foobar123@prod.example.com else SERVER_LOGIN=foobar987@test.example.com fi Yukarıdaki ödevi yazmanın daha kısa (ama temiz) bir yolu var mı? (Muhtemelen eğer bir tür koşullu operatör / satır içi …

5
Disk kullanımı% 90'ı aşarsa uyarı postası göndermek için kabuk komut dosyası
Sunucumda, disk kullanımı% 90'ın üzerine çıktığında otomatik olarak e-posta uyarıları ve% 95'in üzerine çıktığında ikinci e-posta uyarısı gönderecek bir komut dosyası uygulamak istiyorum. Dosya sistemim abc:/xyz/abcve bağlama noktası /pqr. Bunu denedim: ADMIN="someone@def.com" ALERT=90 df -H | grep -vE 'abc:/xyz/pqr | tmpfs |cdrom' | awk '{ print $5 " " $1 …

3
FreeBSD'de başlangıçta çalışacak bir komut dosyasını nasıl ayarlayabilirim?
FreeBSD 9 kullanıyorum ve bir Ethernet kablosunun bağlı olup olmadığını kontrol edecek bir komut dosyası yapmak istiyorum ve eğer öyleyse, ona bağlanır. Bunu, makine her başlatıldığında veya her giriş yaptığımda çalışacak şekilde ayarlamak istiyorum. UNIX kitabıma baktım (Oldukça modası geçmiş ve genel olarak UNIX için, özellikle FreeBSD için değil) ve …



2
#! / Usr / bin / env bash neden sistemimde çalışmıyor?
Şikayet ettikleri bazı kurulum komut dosyalarını çalıştırırken bazı sorunlarla karşılaştım bad interpreter. Bu yüzden önemsiz bir örnek verdim ama sorunun ne olduğunu anlayamıyorum, aşağıya bakın. #!/usr/bin/env bash echo "hello" Yukarıdaki komut dosyasını çalıştırmak aşağıdaki hatayla sonuçlanır [root@ech-10-24-130-154 dc-user]# ./junk.sh bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory /usr/bin/envDosya, …

3
Bir komut dosyasını başka bir komut dosyası için çağırın, ancak çocuk çıkış çağırırsa üst öğeden çıkmayın
first.sh: #! /bin/ksh echo "prova" . ./second.sh echo "ho lanciato il secondo" . ./third.sh echo "ho lanciato il terzo" second.sh: echo "sono nel secondo script" dosomething1 exit $? Bir second.shhata algılar ve -9 durumuyla first.shçıkarsa, her zaman çıkar. Çocuk kabuğu çıkarsa ilk kabuktan çıkmayı nasıl önleyebilirim? Düzenleyemiyorum second.sh.

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.