«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
Bourne kabuğu bir dağıtımda yoksa hashbang / bin / sh komutunu kullanmak doğru mudur?
Genellikle, kabuk komut komut dosyasının ilk satırında aşağıdaki yorumu içerir: #!/bin/sh. Yaptığım araştırmalara göre, buna "karma patlama" deniyor ve geleneksel yorum. Bu yorum Unix'e bu dosyanın Bourne Shell tarafından dizinin altında yürütüldüğünü bildirir /bin. Sorum o noktada başlıyor. Şimdiye kadar bu yorumu beğenmedim #!/bin/bash. Her zaman öyledir #!/bin/sh. Ancak, Ubuntu …

3
Bash, her zaman yolun bir parçası olarak $ PWD'yi kontrol et?
Arka plan: Linux arka planından gelmeyen meslektaşlarımdan biri bana ./başkalarından değil, bazı komutlardan önce kullanmayı sordu , bu yüzden ona nasıl olduğunu açıkladımPATH çalıştığını ve ikili dosyaların nasıl çalıştırılacağını açıkladım. Onun yanıtı aptal olduğu ve sadece ./komutlardan önce yazmak zorunda kalmamasıydı . Soru: Kabuğun davranışını $PWDher zaman ilk öğe olacak …
15 shell  usability 

3
Ssh üzerinde bir komutta true ile ORing
pkill -fSsh ile uzaktan çalıştırmayı denediğimde ve olası hata kodunu atmaya çalıştığımda (hiçbir işlem bulunmasa bile komut dosyamın geri kalanıyla devam etmek için) || truebeklediğim gibi davranmıyor. $ pkill asdf || true $ echo $? 0 $ pkill -f asdf || true $ echo $? 0 $ ssh pi@10.20.0.10 "pkill …
15 shell  ssh  kill 

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
Ssh bir komutu nasıl çalıştırır?
Bash'ı hem istemci hem de sunucuda kullanıyorum. SSH üzerinden bir komut çalıştırırken: ssh <host> 'declare' kabuk değişkenlerinin bir listesini verir. ssh <host> 'mount' montaj noktalarının bir listesini verir. Ancak, declarebir Bash yerleşik, mountharici bir komuttur. SSH, sunucuda aynı ada sahip bir kabuk yerleşik ve harici komut varsa hangisinin çalıştırılacağını nasıl …
15 shell  ssh 



7
Yankı ve kedinin yürütme süresinde neden böyle bir fark var?
Bu soruyu cevaplamak başka bir soru sormama neden oldu: Aşağıdaki komut dosyalarının aynı şeyi yaptığını ve ikincisinin çok daha hızlı olması gerektiğini düşündüm, çünkü birincisi catdosyayı tekrar tekrar açması gerekiyor, ancak ikincisi sadece dosyayı açıyor bir kez ve sonra sadece bir değişkeni yankılar: (Doğru kod için güncelleme bölümüne bakın.) İlk: …

3
“Sudo: source: komut bulunamadı”
$ source /etc/environment $ sudo source /etc/environment [sudo] password for t: sudo: source: command not found Görünüşe göre bashyürütmek için çalıştırılandan farklı bir kabuk var source /etc/environmentve bu kabuk sourceyerleşik olarak yok . Ama benim ve kökün varsayılan mermileri de bash. $ echo $SHELL /bin/bash Eğer sudofarklı bir kabuk indeeds …
15 shell  sudo 

3
Kabuk betiğinde bir boole değerini temsil etmenin en iyi yolu nedir?
Biliyorum, içinde boolean değerler var bash, ama bunların hiçbir yerde kullanıldığını görmüyorum. Makinemde sık sık aranan bazı bilgiler için bir sarıcı yazmak istiyorum, örneğin, bu özel USB sürücü takılı / takılı. Bunu başarmak için en iyi uygulama hangisidir? Dizi? drive_xyz_available=true Bir sayı (true için 0, false için ≠ 0)? drive_xyz_available=0 …


5
Kabuk değişkenlerinden boşlukları nasıl kaldırabilirim?
Komut satırında aşağıdakileri yaptım: $ text="name with space" $ echo $text name with space tr -d ' 'Boşlukları kaldırmak için kullanmak çalışıyorum ve bir sonucu var: namewithspace Gibi birkaç şey denedim: text=echo $text | tr -d ' ' Şimdiye kadar hayır şans umarım harika halk yardımcı olabilir!
15 shell  command-line  tr 

2
Beklenmeyen belirteç `` 'yakınlarında sözdizimi hatası
CentOS için SSH terminalinde aşağıdaki kodu kullandığımda iyi çalışıyor: paste <(printf "%s\n" "TOP") Ama aynı satır kodunu bir kabuk betiğine (test.sh) yerleştirir ve terminalden kabuk betiğini çalıştırırsam, şu şekilde hata atar ./test.sh: line 30: syntax error near unexpected token (' ./test.sh: line 30: paste <(printf "%s\n" "TOP") Bu sorunu nasıl …
15 shell 

2
Pwd ve / bin / pwd arasındaki garip fark
Geçerli dizine bir symlink ekledim ln -s . aa. Eğer yürütürsem cd aave bundan sonra yürütürsem pwd, cevap olur /home/sim/aa. Ama ben yürütürsem /bin/pwdyazdırır /home/sim(geçerli dizin değişmedi). Bu fark nereden geliyor?
15 shell  symlink  pwd 

5
En son dizini al (en son dosyayı değil)
Klasörüm parentşu içeriğe sahip: A.Folder B.Folder C.File İçinde hem klasörler hem de dosyalar var. B.Folderdaha yeni. Şimdi sadece elde etmek istiyorum B.Folder, bunu nasıl başarabilirim? Bunu denedim, ls -ltr ./parent | grep '^d' | tail -1 ama bana veriyor drwxrwxr-x 2 user user 4096 Jun 13 10:53 B.Folder, ama sadece …
15 shell  files  ls  timestamps 

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.