«shell» etiketlenmiş sorular

Kabuk Unix'in komut satırı arabirimidir. Kabuktaki komutları etkileşimli olarak yazabilir veya görevleri otomatikleştirmek için komut dosyaları yazabilirsiniz. / Bin / sh ve en uyumlu kabuklara (kül, bash, ksh, zsh,…) uygulanan sorular için bu etiketi kullanın. Hatalı kabuk komut dosyaları için lütfen buraya göndermeden önce http://shellcheck.net adresinden kontrol edin.

4
dirname ve basename ve parametre genişletmesi
Bir formu diğerine tercih etmek için nesnel bir neden var mı? Performans, güvenilirlik, taşınabilirlik? 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" üretir: /some/long/path/to /some/long/path/to a_file a_file (v1 kabuk parametresi genişletme kullanır, v2 harici ikili dosyalar kullanır.)

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
borulu ls -1 ile aynı mıdır?
lsbirkaç sütunda çıktı döndürür, oysa ben denedim dizinleri ls|catile bayt-özdeş çıktı döndürür ls -1. Hâlâ ls -1cevapların içinde olduğunu görüyorum ls -1|wc -l. Tercih etmek için bir sebep var mı ls -1? Neden ...|catçıktısını değiştiriyor ls?
19 shell  ls 

1
echo [9876543210] 1 4 5 6'yı gösteriyor… neden?
Lütfen son dört eko ifadesi için neden 1 4 5 6 görüntülendiğini açıklayınız? Bunu bir kez kazara vurdum, ama şimdi bu davranışın neden oluştuğunu merak ediyorum. Bu ifadeler beklendiği gibi çalışır (benim için). $ echo [ 9876543210 ] [ 9876543210 ] $ echo [237890] [237890] Bu yankı ifadeleri sürekli olarak …

7
Kabuk / terminalde rastgele renkler ve şakalar
Terminalini kullanırken bir şaka çıkardı ve renkleri değiştirdi ve kullanıcıya güldü bir kişi gördüm. (Yıl) dan beri konsola renklerin akması çizgisinde bir şey söyledi. Ne olduğunu hatırlamıyorum, ama kullanmak istiyorum çünkü Kubuntu Konsole uzun saatler kullanımdan sonra çok sıkıcı oluyor ve işleri biraz canlandırmak istiyorum. Nedir / nereden bulabilirim? Ne …

4
Neden bazı readin (yerleşik) kabukları / proc dosyasındaki tüm satırı okuyamıyor?
Bazı Bourne benzeri kabukları, readiçinde dosyadan bütün çizgi okuyamaz yerleşik /proc(aşağıda çalıştırılması gerekir komutu zshyerine $=shellsahip $shelldiğer kabuklu): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] …
19 linux  shell  proc  read 


5
Bilmediğiniz bir sistemi öğrenme komutları [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 4 yıl önce kapalı . Bilmediğiniz bir UNIX veya Linux sistemine (root olarak) giriş yaparsınız. Kendinizi yönlendirmek ve ne …


5
Neden sadece cp kullanmak daha kolay olduğunda diff / patch kullanıyorsunuz?
diff -u file1.txt file2.txt > patchfile patchfile1.txt dosyasının tam olarak file2.txt biçimine dönüştürülmesi yönergelerinden oluşan bir yama dosyası oluşturur cpBunun yerine komut kullanılarak yapılamaz mı? Bunun dosya çok büyük olduğunda ve bu yaklaşımın bant genişliğini koruyabileceği bir ağ üzerinden aktarılması gerektiğinde yararlı olabileceğini düşünebilirim. Diğer senaryolarda avantajlı olacak diff / …
19 shell  cp  diff  patch 

3
Symlink üzerinden cd yaptığımda, pwd neden gerçek yol yerine symlink'i gösteriyor?
ln -s 1 2Dizin içindeki bir dizine bir yumuşak bağlantı ( ) oluşturdum ve yumuşak bağlantıyı ( ) testaçtım cd 2ve geçerli yolu kullanarak görüntüledim pwd. Görüntülenen yol vardı ~/test/2ve değil ~/test/1. Windows gibi bir işletim sisteminde farklıdır, kısayol bizi gerçek dizine getirir. Bu yumuşak bağlantının Linux'ta nasıl çalıştığı konusunda …

4
Birbirine bağlı komutlar arasında dairesel bir veri akışını nasıl uygulayabilirim?
Komutların birbirine nasıl bağlanabileceğini iki tür biliyorum: Pipe kullanarak (sonraki komutun std-çıkışını std-girişine koyarak). bir Tee kullanarak (çıkışı birçok çıkışa ekleyin). Mümkün olanın bu olup olmadığını bilmiyorum, bu yüzden varsayımsal bir bağlantı türü çiziyorum: Komutlar yerine değişkenler kullandığım örneğin bu sözde kod gibi komutlar arasında dairesel bir veri akışı uygulamak …

9
Bir senaryoyu canlı tutmak için “while true” kullanmak iyi bir fikir midir?
Sadece farklı bir dünyadan unix'e atlıyorum ve while true do /someperlscript.pl done Perl betiğinin kendisinde dahili olarak dosyalar hedef konumda değiştirildiğinde çalıştırılan bir klasör / dosya izleyici vardır. Bu ( while true) iyi bir fikir mi? Değilse, tercih edilen sağlam yaklaşım nedir? TIA EDIT: Bu oldukça ilgi çekici gibi görünüyor, …
19 shell  perl 


4
Eval kullanarak bash değişkenlerine alan içeren değerler nasıl atanır
Dinamik olarak değişkenlere değerler atamak istiyorum eval. Aşağıdaki kukla örnek çalışıyor: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Ancak, değişken değeri boşluk içerdiğinde, çift ​​tırnak işaretleri arasına koyulsa evalbile bir hata döndürür $var_value: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found Bunu atlatmanın herhangi bir …
19 bash  shell  quoting 

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.