«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.

4
Bir komutu renk filtresi aracılığıyla pipetleme
Unix'te böyle bir şey var mı? $ echo "this should show in red" | red $ echo "this should show in green" | green $ echo "this should show in blue" | blue Burada değişmez renk kodu metninin (örneğin bir dosyaya yapıştırılacağı) gelmesini istemiyorum. Sadece metnin aslında terminalde bu renk …
13 bash  terminal  colors 

1
bash'de aritmetik genişlemenin değerlendirilmesi
Aşağıdaki satır oluşturur, file_c-6.txtancak çıktı verir 5: $ i=5; ls file_a-${i}.txt file_b-${i}.txt > file_c-$(( ++i )).txt; echo $i 5 $ cat file_c-6.txt file_a-5.txt file_b-5.txt Biri kaldırırsa >listeler file_c-6.txtve çıktılar 5: iİlk örnekte neden değerini korumadığını anlayamıyorum . $ i=5; ls file_a-${i}.txt file_b-${i}.txt file_c-$(( ++i )).txt; echo $i file_a-5.txt file_b-5.txt file_c-6.txt …
13 bash 

2
“Bash -x” bu betiği neden kırıyor?
Bazı komutun ne kadar çalıştığını ölçen bir komut dosyası var. "Gerçek" timekomutuna, yani bir ikili /usr/bin/timedosyaya (bash-built-in -fbayrağı olmadığı için ) ihtiyaç duyar . Aşağıda, hata ayıklanabilecek basitleştirilmiş bir komut dosyası: #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}') echo …

5
Bu komut dosyasını for döngüsünün sonucuna göre hata çıkışına nasıl alabilirim?
set -o errexitHata durumunda tüm komut dosyası hata noktasında çıktığı kullanan bir bash komut dosyası var . Komut dosyası, curlbazen istenen dosyayı alamayan bir komut çalıştırır - ancak bu durumda komut dosyası çıkışta hata vermez. İçin bir fordöngü ekledim birkaç saniye duraklatın, ardından curlkomutu yeniden deneyin falsevarsayılan sıfır dışında bir …

2
Kabukta kontrol karakterleri (^ C, ^ D, ^ [,…) farklı görüntüleme
Kabukta kontrol karakterleri yazdığınızda, "düzeltme işareti" adı verilen öğeyi kullanarak görüntülenirler. Örneğin kaçış ^[, düzeltme işareti gibi yazılır. Havalı kabuğumun havalı görünmesini sağlamak için özelleştirmeyi seviyorum. Mesela kendimi değiştirdim PS1ve PS2renklendirdim. Şimdi kontrol karakterlerinin de normal karakterlerden daha ayırt edilebilir olmasını sağlamak için benzersiz bir görünüm elde etmelerini istiyorum. $ …

2
Bash'de yerel değişken nasıl artırılır?
Veri 1 \begin{document} 3 kod #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 ki geri dönüyor 2ama istiyorum 3. Nasıl bir bash betiğinde sayı ekleyebilirim hakkında bu cevabın sonunda başarısız bir şekilde değiştirmek : START2=$((getStart+1)) Bash betiğinde yerel bir değişkeni …

7
Tarih çıktısını komut dosyasında değişken olarak boşluklarla nasıl biçimlendirebilirim?
Ben dateböyle güzel biçimlendirme ile komut yapmak istiyorum: $ date +"%Y-%m-%d %H:%M:%S" 2015-09-17 16:51:58 Ama bu değişkeni kaydetmek istiyorum, bu yüzden böyle bir komut dosyasından çağırabilirsiniz: echo "$(nice_date) [WARNING] etc etc" Ancak çalışmıyor $ nice_date="date +%Y-%m-%d %H:%M:%S" $ echo "$($nice_date)" date: extra operand ‘%H:%M:%S’ Try 'date --help' for more information. …
13 bash  date 

3
“Cat> file_name << blah” komutunu nasıl anlayabilirim?
Aşağıdaki komutta cat here-doc içeriğini alır ve conf adlı dosyaya yönlendirir: cat &gt; conf &lt;&lt; EOF var1="cat" var2="dog" var3="hamster" EOF Buradaki komutların sırasını nasıl anlayabilirim? bashİlk önce diğer her şeyi (burada-doc kısmı) işler mi ve son adım olarak o &gt; confkısmı mı görüyor?

3
OS X'te ~ beklenmeyen Bash tamamlaması
Ben preslenmiş ~TabTabistemi bash komuta ve tamamlama beklenmedik setini aldı. İlk olarak /Usersdizindeki tüm millet gibi görünüyordu ve çok daha fazlası. Sonra bunun "ev" dizinleri olan /etc/password, ya da belki de olanlar ile ters arama yaptığını düşündüm /var/empty- bu doğru görünüyor. Merak ettiğim şey gerçekten olup bitenler ve bunun neden …

2
Flok ve exec bash için güvenli mi?
Gördüğüm "standart" kilitleme snippet'i ... ( flock -n 200 || exit 1; # do stuff ) 200&gt;program.lock execO noktada kullanmak güvenli mi (test böyle söylüyor) ? Alt işlem kilidi tutacak mı? ( flock -n 200 || exit 1; exec /usr/bin/python vendors-notcoolstuff.py ) 200&gt;program.lock Yürütülen işlemlerin açık dosya tanımlayıcılarını tutması ve …
13 bash  lock 

4
Dizin silindiğinde `ls` hatası
Açık iki kabuğum var. Birincisi A dizinindedir. İkincisi, A dizinini kaldırırım ve sonra yeniden oluştururum. İlk kabuğa geri döndüğümde ve yazdığımda lsçıktı: ls: cannot open directory .: Stale file handle Neden? İlk kabuğu (var olmayan bir dizin içinde açık kalan) bir sonraki komutu beklerken "donacak" ve dizinin silinip yeniden yaratıldığını …


2
Değişkenler cd'leme için nasıl "~" kullanabilir?
Bir değişkeni nasıl kullanabilirim - $BASEcd'mde. Aşağıdakileri denedim ama bir hata alıyorum $ cd ~/z/repo_1_ruby_193/ 23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ BASE="~/z" 23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ cd $BASE/repo_1_ruby_193 -bash: cd: ~/z/repo_1_ruby_193: No such file or directory 23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193

5
Bir dosya adının bir kabuk glob deseniyle eşleşip eşleşmediğini nasıl programlı olarak söyleyebilirim?
Bir dize $stringbir glob desen ile eşleşecek olup olmadığını söylemek istiyorum $pattern. $stringvarolan bir dosyanın adı olabilir veya olmayabilir. Bunu nasıl yapabilirim? Giriş dizelerim için aşağıdaki biçimleri varsayalım: string="/foo/bar" pattern1="/foo/*" pattern2="/foo/{bar,baz}" Ben eğer belirleyen bir bash deyim bulmak istiyoruz $stringeşleşmesi olacağını $pattern1, $pattern2ya da başka herhangi keyfi glob desen. İşte …
13 bash  wildcards 

3
[Az] yıldız işareti neden sayılarla eşleşiyor?
Geçerli yolda 3 dizin var. $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: Son ls komutunun sadece eşleşmesini bekledim a_clean_data. Neden onu içerenle de eşleşti 0? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)

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.