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

6
Yürütmeden önce komut ikili dosyalarının doğrulanması
Bir bash betiğinden gerçekte ne yürüttüğünüzü kontrol etmek için herhangi bir yöntem var mı? (Örneğin: sizin bash komut çeşitli komutlar çağırıyor Say tar, mail, scp, mysqldump) ile emin olmak isteyen targerçek, gerçek olan tarile belirlenebilir olan rootdosya ve üst dizin sahibi ve yazma izinleri olan tek varlık kullanıcıya ve sahibi …


8
Bir değişkenin içeriğini kelimelerle ters çevirme
Eğer bir değişkenim varsa VAR='10 20 30 40 50 60 70 80 90 100' ve yankılanır echo "$VAR" 10 20 30 40 50 60 70 80 90 100 Ancak, daha fazla komut dosyası aşağı gibi bir değişken olarak gösterir bu değişkenin sırasını tersine gerekir echo "$VAR" | <code to reverse …
13 linux  bash  shell  variable 

2
Kabuk betiğinin hangi programın çalıştığını bilmesi için bir yol var mı?
* Nix dünyasında, kabuk betiğinin hangi programın yürüttüğü hakkında bilgi edinmenin bir yolu var mı? Misal: /path/to/script1 /path/to/script_xyz bu hayali senaryoda, script_xyzyol bilgisi ( /path/to/script1) olurdu veya süreç PID uygulayan varlık. Not: Farklı çözümler ve yaklaşımlar merak ediyorum, tam olarak bunun mümkün olmasını beklemiyorum

2
Özel bir karakter normal karakter olarak nasıl kullanılır?
'Çift tırnak işareti (") nasıl yazılır?' isteniyor, ve biz aynı cevabı (olarak yazın ile toplumumuzu yığılmayı istemiyoruz \"içine değilse ', s "içine eğer 's.) Yani, soru burada. Normal gibi bir terminale özel karakter yazamazsınız, örneğin bu komut başarısız olur: echo Updates (11) Peki, terminaldeki bu karakterleri normalmiş gibi nasıl yazabilirim? …

1
Klasöre girerken geçici bash diğer adlarını ayarlama
Bazen bir klasöre girdiğimde çok özelleştirilmiş bash takma adlarına ve belki de tuş bağlantılarına sahip olmayı seviyorum (CLI'dan çok sayıda komut yazmak için kullanıldığım bir proje olabilir). "ProjectAlpha /" gibi bir klasöre girdiğimde varsayalım: alias doTaskX='./app arg1 arg2...|filter arg1 arg2...' ... Düşündüğümden daha fazlası: Takma adları ve ortak komutları gösteren …
13 bash  shell  alias 

3
İki yankı komutunun çıkışları arasında \ n nasıl kaldırılır?
Her satırda bir dosya adı içeren bir metin dosyası var: 111_c4l5r120.png 123_c4l4r60.png 135_c4l4r180.png 147_c4l3r60.png 15_c4l1r120.png ... Bu şekilde dönüştürmek istiyorum: 111_c4l5r120.png 111 123_c4l4r60.png 123 135_c4l4r180.png 135 147_c4l3r60.png 147 15_c4l1r120.png 15 ... bu kodu kullanarak: #!/bin/bash while IFS='' read -r line || [[ -n "$line" ]]; do echo "$line" >> output.txt …

1
Neden bazı programlar derhal kabuğa geri dönerken, diğerleri yürütme tamamlanana kadar geri dönüyor?
Modern İşletim Sistemleri kitabından bir komut çalıştırıldığında kabuğun bir alt işlem oluşturduğunu, çocuk yürütmeyi bitirene kadar beklediğini ve daha sonra kullanıcıdan başka bir komut beklediğini okudum . Bu gibi birçok program için de durum böyledir gedit. Terminal kapanana kadar komut almaz gedit. Ancak atom kodu düzenleyicisini açtığımda , kabuk, düzenleyici …

2
`Watch` neden` ​​ls / tmp` $ HOME içeriğini listeliyor?
/tmp/Dizindeki dosya sayısını izlemeye çalışıyorum . Bunun için bu komutun işe yarayacağını düşündüm: watch sh -c 'ls /tmp/|wc -l' Ama sanki lshiç argümanı yokmuş gibi çalışıyor . Yani, içerideyim ~ve bunun yerine dosya sayısını alıyorum /tmp/. İşe yarayan bir çözüm buldum: watch sh -c 'ls\ /tmp/|wc -l' Ama neden arasındaki …
13 shell  ls  watch 

2
$ @ Bir konumsal parametre nasıl kaldırılır
Temel olarak, -infparametre listesinden ilk kez "koparmak" istiyorum . (Kalan parametreler farklı bir komuta iletilecektir.) Sahip olduğum komut dosyası aşağıdaki yapıya sahiptir: #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break fi <CODE> done <CODE> some-other-command "$@" # end …

3
Neden rm -rf ve rmdir -rf değil
Her zaman bir dizindeki her şeyi silme komutunun neden olduğunu merak ettim rm -rf. Neden aynı şeyi yapacak bayraklar yok rmdir? rmdirDizin işlemleri için kullanmak daha sezgisel olmaz mı?
13 shell  files  directory 

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?

6
Bir klasörde bulunan .gz dosyalarının ayıklanması
Yaklaşık 320116 .pdb.gz dosyaları içeren bir klasör var. Hepsini açmak istiyorum. Gunzip * .gz kullanırsam bana bir hata verir yani argüman listesi çok uzun. Klasör yaklaşık 2GB. Lütfen bana uygun bir öneri verin.
13 shell 

4
Bash'ı Python ile nasıl değiştirebilirim?
Bu SO sorusunun kabul edilen cevabına göre: Python büyük bir bash değiştirme yapabilir . O zaman sorum şu: bu sorunsuz bir geçiş yapmaya nasıl devam edebilirim? Ben böyle bir anahtar yapmak için sıralamak için ana şey olurdu: sanal bir terminal başlarken, Bourne kabuğu gibi bir şey yerine, bazı Python kabuk …
13 shell  python 

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

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.