«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
1. argüman hariç $ @
Bu şekilde çalışan bir kabuk betiği yazmam gerekiyor: ./myscript arg1 arg2_1 arg2_2 arg2_3 ....... arg2_# script içinde bir for döngüsü var for i in $@ Ancak bildiğim gibi, $ @ 1 - $ ($ # - 1) arasında bir değer içeriyor. Fakat benim programım için $ 1, $ 2 $ …
36 bash  shell  scripting 

5
Çalıştırmadan önce tüm kabuk betiği nasıl okunur?
Genellikle, bir scrpit düzenlerseniz, betiğin tüm kullanım kullanımları hatalara açıktır. Anladığım kadarıyla, bash (diğer kabukları da?) Betiği adım adım okudum, yani betiği harici olarak değiştirdiyseniz yanlış şeyler okumaya başlar. Bunu önlemenin bir yolu var mı? Örnek: sleep 20 echo test Bu betiği çalıştırırsanız, bash ilk satırı okur (10 bayt) ve …
35 shell 

8
Git klonundan sonra otomatik olarak nasıl cd yapılır?
Bir şey yaptıktan sonra komut cdtarafından oluşturulan dizine otomatik olarak geçmek istiyorum .clonegit clone Önemli: Komutun sözdizimini değiştirmek istemiyorum (örneğin, bir takma ad / işlev kullanın) çünkü Pretzoprojeden otomatik olarak elde ettiğim zsh tamamlamalarını kıracak . EDIT : Herhangi bir cevabı doğru seçmememin nedeni, yukarıdaki koşula uyan bir cevap verilmemesidir. …
35 shell  zsh 

3
Geriye doğru hareketi anlama (`)
Komutu deniyorum $ b=5; echo `$b`; -bash: 5: command not found ancak olması gerektiği gibi 5 yazdırmaz. Burada ne özlüyorum? Komutlarda `(backquote / backtick) ne anlama geliyor? `İçindeki komutları değerlendiren ve çıktılarla değiştiren bir şey gibi görünüyor .

4
cd'yi itme yerine takma - iyi bir fikir mi?
Aşağıdaki takma adı kullanmak iyi bir fikir midir: cd() { pushd $1; } bash olarak mı? Bunun çok yararlı olacağını düşünüyorum, çünkü daha sonra popdsadece bir cd -kez yerine bir dizi s kullanabilirim . Bunun bir problem olabileceği bir durum var mı?


5
~ / .Bash_profile dosyam neden çalışmıyor?
Linux Mint kullanıyorum. Giriş kabuğum ( cat /etc/passwd | grep myUserName) bash. Grafik masaüstü ortamımı başlattıktan ve ondan bir terminal emülatörü çalıştırdıktan sonra, .bash_profilebunun kaynak olmadığını görebiliyorum (içinde var olan ortam değişkendir export). Ancak bir metin konsolundan ( ctrl+ alt+ F1) giriş yaparsam veya bash -lterminal emülatöründen el ile çalıştırsam …
35 bash  shell  login  profile 

7
2> & 1> output.log ve 2> & 1 arasındaki fark | tee çıktısı.log
Aşağıdaki iki komut arasındaki farkı bilmek istedim. 2>&1 > output.log ve 2>&1 | tee output.log İş arkadaşlarımdan birinin yönlendirmek için ikinci seçeneği kullandığını gördüm. 2> & 1 'in ne yaptığını biliyorum, tek sorum, basit bir yönlendirme ">" işlecinin kullanılabileceği tee kullanmanın amacı nedir?

2
Varsayılan kabuk olarak csh'dan bash'a nasıl değiştirilir
Ben cshgösterdiği gibi, varsayılan kabuk olarak echo $SHELL. bashVarsayılan kabuğum olarak geçmek istiyorum . Boşuna aşağıdaki yaklaşımları denedim: İle chshI get: chsh: can only change local entries; use ypchsh instead. İle ypchshI get: ypchsh: yppasswdd not running on NIS master host ("dcsun2"). Sadece .chsrcana dizimdeyim ve .profileiçinde hiçbir dosya bulamıyorum …
34 shell 



3
Ne: $ {param: = değer} ne anlama geliyor?
Aşağıdakileri Z-Shell'in Kullanım Kılavuzunda okudum : 'True' ile eşanlamlı: '; Bu formda genellikle yan etkileri olan fakat kullanılmaması gereken argümanlar vermek için kullanılır. : ${param:=value} tüm Bourne kabuğu türevlerinde ortak bir deyimdir. Parametre genişlemesinde, $paramdaha önce boş bırakılmışsa değer verilir, aksi halde yalnız bırakılır. Parametre genişlemesinin tek nedeni bu olduğundan, …
34 bash  shell  zsh 

7
GUI uygulamasını başka (root olmayan) bir kullanıcı olarak çalıştırma
Diyelim ki 2 tane kullanıcı hesabım var user1ve user2. Ben giriş yaptığında user1ve ardından geçiş user2kullanarak su, komut satırı programları çalıştırmak, ancak GUI programları başarısız. Örnek: user1@laptop:~$ su - user2 user2@laptop:~$ leafpad ~/somefile.txt No protocol specified leafpad: Cannot open display: Peki bir GUI uygulamasını nasıl çalıştırabilirim?
34 shell  x11  xorg  su 

5
Bir değişkende saklanan bir komutu nasıl çalıştırabiliriz?
$ ls -l /tmp/test/my\ dir/ total 0 Yukarıdaki komutu çalıştırmak için aşağıdaki yolların neden başarısız olduğunu ya da başarılı olduğunu merak ediyordum. $ abc='ls -l "/tmp/test/my dir"' $ $abc ls: cannot access '"/tmp/test/my': No such file or directory ls: cannot access 'dir"': No such file or directory $ "$abc" bash: …
34 bash  shell  quoting  variable 

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.