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


1
bash'de olduğu gibi POSIX'te dolaylı değişken genişleme?
Bash'te yapılabileceği gibi POSIX'te dolaylı değişken genişleme yapmak mümkün mü yoksa zarif bir kesmek var mı? Bağlam için aşağıdakileri yapmaya çalışıyorum: for key in ${!map_*} do # do something done EDIT: Açıklığa kavuşturmak için, ile başlayan kabuk değişkenlerine erişmek istiyorum map_.

3
Windows paylaşımlı klasöründen Unix'e dosya kopyala
Unix için tamamen yeniyim. Dosyaları Windows paylaşılan klasöründen Unix'e kopyalayacak bir komut dosyası yazıyorum. Ben yazarken Windows, \\Servername.com\testfolderÇalıştır komutu ben görebiliyorum testfolder. Dizin testfolder, tüm ağ boyunca paylaşılan bir klasördür. Şimdi bundan bazı dosyaları testfolderUnix makinesine kopyalamak istiyorum . Hangi komutu kullanmalıyım? Sunucunun IP Adresini biliyorum ama kullanıcı adını bilmiyorum.
11 shell  samba  file-copy 

3
bash: "-x" yankısından ayrı satırlardan kaç
Bash'de, -xseçenekle çalışırken , tek tek komutların yankılanmasından muaf olması mümkün müdür? Çıktıyı olabildiğince düzgün hale getirmeye çalışıyorum, bu yüzden komut dosyamın bazı bölümlerini bir alt kabukta çalıştırıyorum set +x. Bununla birlikte, satırın set +xkendisi hala yankılanır ve çıktıya değerli bir bilgi eklemez. Kötü eski .batgünlerde hatırlıyorum , koşarken echo …
11 bash  shell  debugging 

4
Bir dosyanın ilk 3 baytını atla
AIX 6.1 ksh kabuğu kullanıyorum. Böyle bir şey yapmak için bir astar kullanmak istiyorum: cat A_FILE | skip-first-3-bytes-of-the-file İlk satırın ilk 3 baytını atlamak istiyorum; Bunu yapmanın bir yolu var mı?

1
Find komutuyla bulunan birden fazla dosyanın izinlerini nasıl değiştirebilirim?
Çok sayıda dosya içeren bir dizin var. Dosyaların bir 755kısmı 644izinlere , diğer kısmı izinlere sahiptir. 755İzinleri olan dosyaları dönüştürmek istiyorum 644. Dizinin kendisinden çalıştırarak aşağıdaki satırı denedim: find . -perm 755 -exec chmod 644 {}\; Sonuç olarak, izin sadece dizinin kendisi için değişti ve geri değiştirdikten sonra dosya izinlerinin …

4
Normal ifadeyle eşleşen alt dizinleri yinelemeli olarak yeniden adlandırma
Adlı bir klasör içeren bir medya sunucum var Series. ( /media/Expansion2/Series/) İçinde, (sürpriz!) TV dizim var. Bunlar sadece şov adlarıdır, ör./media/Expansion2/Series/The Big Bang Theory/ Her şovun klasöründe (ve bu da sorunun yattığı yer) sezon klasörleri var. Şu anda aşağıdaki 2 sözleşmenin bir karışımı var (muhtemelen birkaç tane ile birlikte): /media/Expansion2/Series/The …

4
Kabuktaki karmaşık bir durumun sözdizimi nedir?
Kabuk (sh) cinsinden aşağıdaki testi ifade etmek istiyorsanız: if ( a == 1 && ( b == 1 || b == 2 )) { ... } Şimdiye kadar, yazabildiğim en iyisi şudur: if [[ $a -eq 1 ]]; then if [[ $b -eq 1 || $b -eq 2 ]]; then …
11 shell 

10
Bir dizindeki dosya sayısını saymanın en iyi yolu nedir?
Çıktının ayrıştırılması lstehlikelidir, çünkü bazı korkak karakterleri (boşluklar \n, ...) kırabilir, bir dizindeki dosya sayısını bilmenin en iyi yolu nedir? Ben genellikle findbu ayrışmayı önlemek için güvenirim , ama benzer şekilde, find mydir | wc -laynı nedenlerle kırılacaktır. Şu anda Solaris üzerinde çalışıyorum, ancak farklı birliklerde ve farklı kabuklarda taşınabilir …

1
Neden '… arasında ad çakışması' hataları alıyorum ve bunları nasıl düzeltebilirim?
Her zaman başlatılması için denemek vimveya emacshatta top(ssh üzerinden bir küme bilgisayarda) bir unix terminalde, böyle hatalar 'xxx arasında adı çarpışma' aa sürekli akışı almak (Ben aslında kullandığı ncurses'in herhangi bir komut olduğunu düşünüyorum): Name collision between dumb dumb Name collision between unknown unknown Name collision between lpr lpr Name …
11 shell  vim  emacs  gnu-screen 


4
ssh kullanarak programlı olarak uzak bir dizin oluşturma
Bir kabuk komut dosyası kullanarak, ssh kullanarak serverA -> serverB'den nasıl uzaktan dizin oluşturabilirim? Ssh komutuyla dizin oluştur komutunu iletebilir miyim? Nasıl? Temelde, eğer zaten yoksa, tarihe (eski 20110304) göre uzaktan bir dizin oluşturmak için arıyorum.
11 shell  ssh  directory 

2
Her girişte zsh güncellemesinde kendisini RPROMPT nasıl yaparsınız?
My RPROMPT, kullanarak svn bilgilerini görüntüleyecek şekilde ayarlanmıştır vcs_info. Okur RPROMPT=${vcs_info_msg_0_}. vcs_infokullanmaya denir precmd(). Ancak dizinleri değiştirdiğimde RPROMPT güncellenmiyor. Sadece istemi tekrar çağırırsam çalışır (kaynak ~ / .zshrc veya istemle) ve istemi tekrar çağırmadıkça chdir üzerinde değişmez. Bu davranışı değiştirmenin bir yolu var mı?


1
GNU Makefiles'de proses ikamesi
Bir bash isteminde, sözde dosyaları kullanarak diff yürütülebilir: diff <(echo test) <(echo test) Bunu bir Makefile'a olduğu gibi eklemek başarısız olur: all: diff <(echo test) <(echo test) Hata (ipucu: / bin / sh bu sistemdeki / bin / bash öğesini gösterir): /bin/sh: -c: line 0: syntax error near unexpected token …

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.