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


3
“Trap… INT TERM EXIT” gerçekten gerekli mi?
Birçok örnekler trapkullanım trap ... INT TERM EXITtemizleme görevler için. Fakat bu üç sigspec'in tümünü listelemek gerçekten gerekli mi? Manuel diyor ki: Bir SIGNAL_SPEC ÇIKIŞ ise (0) ARG kabuktan çıkışta yürütülür. bence betiğin normal bitip bitmediğini veya aldığından SIGINTveya bitmesinden dolayı bitip bitmediğini uyguladım SIGTERM. Bir deney de inancımı doğrular: …
63 bash  shell  signals  trap 



3
Bir arşiv nasıl indirilir ve arşiv diske kaydedilmeden nasıl çıkartılır?
Belirli bir dizinin altındaki bir arşivi indirmek ve çıkartmak istiyorum. İşte şimdiye kadar nasıl yapıyorum: wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz tar zxf dbt2-0.37.50.3.tar.gz mv dbt2-0.37.50.3 dbt2 Ben arşiv indirmek ve ayıklamak için yerine istediğiniz anında kalmadan tar.gzdiske yazılır. Bu çıktısının ile mümkün olduğunu düşünüyorum wgetetmek tarve vermek tarbir hedef, ama pratikte ben parçaları …
62 shell  pipe  tar  wget 

5
Heredoc'u yuvalamanın girintisini eşleştirmek için girintilemez
Senaryo için "İlk Dünya Sorunları" varsa, bu olurdu. Güncelleştirdiğim bir komut dosyasında aşağıdaki kodu var: if [ $diffLines -eq 1 ]; then dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g') mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI Last Change: $dateLastChanged …

6
Bash'in renkleri basıp basamayacağı nasıl kontrol edilir
Programımın terminal çıktısının renk kullanarak çıkıp çıkmadığını kontrol etmenin bir yolu olup olmadığını bilmek istiyorum. Gibi komutları çalıştıran lessve çıktıları renkleri kullanarak çıkaran bir programdan çıktılara bakarak, çıktı yanlış görüntüleniyor [ESC[0;32m0.052ESC[0m ESC[1;32m2,816.00 kbESC[0m] Teşekkürler
62 shell  terminal  colors 

1
Nullglob neden varsayılan değil?
Çoğu kabukta nullglobvarsayılan değil. Bu, örneğin, eğer bu komutu çalıştırırsanız, ls * boş bir dizinde, boş bir argüman listesi yerine *glob'ı değişmeze doğru genişletir *. Bu davranışı değiştirmenin yolları vardır, böylece *boş bir dizinde daha sezgisel görünen boş bir argüman listesi döndürür. Öyleyse, nullglobvarsayılan olarak devre dışı bırakılmasının bir nedeni …
61 shell  wildcards 

3
Öldür -0 ne yapar?
Geçenlerde bir kabuk komut dosyasında bu karşılaştı. if ! kill -0 $(cat /path/to/file.pid); then ... do something ... fi Ne yapar kill -0 ...?
61 shell  process  kill 

1
Stderr ve stdout komutunu / dev / null komutuna / bin / sh komutuna yönlendirin
Her iki yönlendirmek için yollar her türlü denedim stdoutve stderrhiç /dev/nullolmadan herhangi bir başarı. Neredeyse tüm hayatım boyunca bu sorunla hiç karşılaşmadığım bash koşusu yaşadım, ancak bir keresinde BSD'de sıkışıp kaldım /bin/sh. Ne denedim: if ls ./python* 2> /dev/null; then echo found Python fi ... hangi çalışır; Python yoksa, hata …

1
Bu komut nasıl yasaldır? “> Dosya1 <dosya2 kedisi”
Varsayalım ki file2, komut &gt; file1 &lt; file2 cat içeriğini kopyalayarak gibi görünmektedir file2için file1. Ancak bu yapıyı anlayamıyorum. "Hiçbir şeyin" yönlendirilmediğini file1, (içeriğini oluşturduğu veya sildiğini) anlıyorum . Daha sonra içeriği file2yönlendiriliyor file1. Neden catsonra file2? cat file2İşlenenlerin doğru sırada olup olmadığını nasıl anlar ?

2
Bir dosyanın hatları üzerinde nasıl döngü?
Diyelim ki bu dosya var: hello world hello world Bu program #!/bin/bash for i in $(cat $1); do echo "tester: $i" done çıktılar tester: hello tester: world tester: hello tester: world forHer satırdaki yinelemenin tek tek boşlukları görmezden gelmesini isterim , yani son iki satırın yerini alması gerekir. tester: hello …

3
`//` ile başlayan Shebang?
Aşağıdaki script ( hello.go) hakkında kafam karıştı . //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } Yürütebilir. (MacOS X 10.9.5’de) $ chmod +x hello.go $ ./hello.go hello, world Onunla başlayan Shebang'ı hiç duymadım //. Ve betiğin en üstüne boş bir satır …



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.