«bash» etiketlenmiş sorular

Diğer Bourne / POSIX mermilerinin aksine, GNU'dan Bourne Again SHell'e özgü sorular. Genel olarak Unix kabukları hakkında sorular için / shell etiketini kullanın.

3
Bash parametre genişletmedeki referansları destekliyor mu?
Ben adında bir değişken var descrbir dize içerebilir Blah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Foovb Almak istediğim -> r1-ae0-2, -> s7-Gi0-0-1:1-USdizesinden parçasını. Şu anda bunun için kullanıyorum descr=$(grep -oP '\->\s*\S+' <<< "$descr". Bunu yapmanın daha iyi bir yolu var mı? Bunu parametre genişletme ile yapmak da mümkün müdür?


5
"İf` ve" then "programları gerçekten
Noktalı virgüllerin programları ayırmak için kullanıldığını okudum: $ echo 3; ls -la O anlamına mı if, thenve elseayrı programlar burada? $ if [ $VARIABLE == abcdef ] ; then echo yes ; else echo no ; fi Bu soru noktalı virgülle ilgili değildir.

1
Tipik mermi “çatal bombası” tam olarak nasıl iki kere çağırır?
Askubuntu ve diğer pek çok Stack Exchange sitesinde Çatal Bomba ile ilgili ünlü soruları inceledikten sonra , herkesin söylediklerini açıkça anlayamıyorum. Birçok cevap ( En iyi örnek ) bunu söylüyor: " {:|: &}fonksiyonu çalıştırmak :ve çıktısını :tekrar fonksiyona göndermek " Peki, çıktısı tam olarak: nedir? Diğerine ne geçiyor :? Ve …

3
Bir komutu argüman olarak bir dizinle, sonra cd'yi aynı şekilde çalıştırmak nasıl? “Böyle bir dosya veya dizin yok”
Aşağıdakileri yapmak için kısa bir işlev kurmak istiyorum. Diyelim ki 'file.tex' dosyasını belgeler dizinime taşıyorum: mv file.tex ~/Documents Sonra, cdbu dizine istiyorum : cd ~/Documents Bunu yapabilmek için bunu herhangi bir dizine genelleştirmek istiyorum: mv file.tex ~/Documents follow ve followkomutun hedefi önceki komuttan okumasını sağlayın, ardından buna göre çalıştırın. Basit …
15 bash  cd-command 

2
Programlar STDOUT / STDERR dışında başka bir yere nasıl gönderilir? Nasıl önlenir?
Görünüşe göre kullanılabilir tüm çıkış hedeflerini bilmiyorum. stdout( &1) Ve stderr( &2) hakkında biliyorum . Ancak, her iki tanımlayıcıyı yeniden yönlendirdikten sonra, bazen konsolumda hala bazı çıktılar alıyorum! Düşünebileceğim en kolay örnek GNU Parallel; Her kullandığımda bir alıntı bildirimi görüyorum. Yaptığımda bile &2>1 > file, bildirimi hala görüyorum. Aynı şey …

1
exec ve log dosyasına aktar: bu bash komutlarını açıklar
Bunu benim bash script dosyamın üstünde gördüm: export LOGFILE=$LOGDIRECTORY/${SCRIPT_NAME}.log exec > >(tee $LOGFILE) exec 2>&1 Bu ne işe yarıyor? Burada iki yürütme işlemi ne yapıyor? Bunu böyle koruduğumu fark ettim, senaryonun yürütülmesinin tüm çıktıları borsada $LOGFILEama execaçıklamaların perspektifinden anlamak istedim .
15 bash 

6
Kabuk komut dosyalarının çıkış durumu için "ayrılmış" kodları kullanma
Geçenlerde Gelişmiş Bash-Scripting Kılavuzu'ndan Özel Anlamlarla Çıkış Kodları listesine rastladım . Bu kodlara ayrılmış olarak atıfta bulunurlar ve şunları önerirler : Yukarıdaki tabloya göre, 1-2, 126-165 ve 255 çıkış kodlarının özel anlamları vardır ve bu nedenle kullanıcı tanımlı çıkış parametreleri için kaçınılmalıdır. Bir süre önce, aşağıdaki çıkış durum kodlarını kullanan …

3
Kısa çizgi dosyaları nasıl okunur
Bir tire dosyasını terminalden ayırmak dışında nasıl okuyabilirim? ./ Örneğin bir - fileokumak için cat ./-file_name S: Aynı şeyi başarmanın alternatif bir yolu var mı?
15 bash  cat 

3
Bir bash komut dosyasında `1 >>` ve `2 >>` ne anlama geliyor?
Ben anlıyorum aşağıdaki bash betiği var >> üzerine bir komutun çıktısını yazmak yerine mevcut bir dosyaya eklemek için kullanılır, ancak bu durumda ne yapıyor? Bu komut dosyası, bir biçimden diğerine dönüştürmek için bazı exe dosyalarını çağırıyor. Her dosya için uzun yıllar vardır, bu nedenle dosya adına bakarak her dosyada dolaşır. …

3
spawn - komut bulunamadı!
Mac OS X 10.9.4 kullanıyorum, dosyaları yerel makineden farklı ana bilgisayara kopyalamak için komut dosyam #!/bin/bash #!/usr/bin/expect echo "I will fail if you give junk values!!" echo " " echo "Enter file name: " read filePath echo " " echo "Where you want to copy?" echo "Enter" echo "1. if …


3
geçerli oturum için bash geçmişi
Belki bir şeye bakmıyorum ama şu anda kullandığınız oturum için mevcut bash geçmişinizi almanın bir yolu var mı? koşarsam ssh host $ pwd $ ls $ cd /tmp Sadece bu 3 komutu görmek istiyorum ve başka bir şey yok

2
Pozisyon parametreleriyle Bash -c
Genellikle, $0bir komut dosyasında komut dosyasının adına veya ne olarak çağrıldığına (yol dahil) ayarlanır. Ancak, seçeneği bashile kullanırsanız , komut dizesinden sonra iletilen bağımsız değişkenlerin ilkine ayarlanır:-c$0 bash -c 'echo $0 ' foo bar # foo Aslında, konumsal parametreler değişmiş gibi görünüyor, ancak dahil $0. Ancak shiftkomut dizesinde $0(normal olarak) …
15 bash 

4
Bir dizindeki dosyalar arasında yinelemeli yineleme
Bir dizindeki dosyalar arasında yinelemeli olarak yineleme yapmak şu şekilde yapılabilir: find . -type f -exec bar {} \; Bununla birlikte, yukarıdakiler, çok sayıda koşullu dal, döngü vb. Yapılması gereken daha karmaşık şeyler için işe yaramaz. Bunu yukarıdaki için kullanıyordum: while read line; do [...]; done < <(find . -type …

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.