«command-substitution» etiketlenmiş sorular

Kabuk komutu ikamesi ($ (command) veya `command` gibi), mekanizması, doğru sözdizimi vb. İle ilgili sorular. Takma ad ile karıştırılmamalıdır.

5
Oluşturulan dosya adları listesini bağımsız değişken listesi olarak - boşluklarla kullanma
Tarafından toplanan dosya adlarının bir listesini içeren bir komut dosyasını çağırmaya çalışıyorum find. Özel bir şey yok, sadece böyle bir şey: $ myscript `find . -name something.txt` Sorun, bazı yol adlarının boşluk içermesidir, bu nedenle bağımsız değişken genişletmesinde iki geçersiz ada ayrılırlar. Normalde isimleri tırnak işaretleri ile sararım, ancak buraya …

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
“-O errtrace” kullanarak komut değiştirme işleminde bindirme hataları (yani set -E)
Bu ref kılavuzuna göre : -E (ayrıca -o errtrace) Ayarlanırsa, ERR üzerindeki herhangi bir tuzak kabuk işlevleri, komut ikameleri ve alt kabuk ortamında yürütülen komutlar tarafından devralınır. ERR tuzağı normalde bu gibi durumlarda kalıtsal değildir. Ancak, yanlış yorumlamalıyım, çünkü aşağıdakiler işe yaramıyor: #!/usr/bin/env bash # -*- bash -*- set -e …

5
listeden grep dosyaları
Birkaç yüz dosya listesini karşı grep çalıştırmak çalışıyorum: $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php Ancak, dosyalarda bulunduğunu bildiğim bir dize için selamlıyorum bile, aşağıdaki dosyaları aramaz: $ grep -i 'foo' <(cat files.txt) $ grep -i 'foo' admin.php The foo was found Bir dosyadaki kalıpları-f okuyan bayrağa aşinayım …

2
Alt kabuklarda iç içe alıntılar
Diyelim ki subshell çıktısını kapsüllemek için tırnak işareti kullanmak zorundayım: DATA="$(cat file.hex | xxd -r)" Ama bu tür şeyleri iç içe geçirmem gerekiyor: DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" Tek tırnak kullanamıyorum çünkü bunlar içlerindeki değişkenleri genişletmiyor. Alıntılardan kaçmak işe yaramıyor çünkü sadece pasif metin olarak …


3
Döngüler için Çok Değişkenli
İçindeki fordöngülerde birden çok değişken (yalnızca tamsayılar değil) belirtmenin bir yolu var mı bash? Çalışmam gereken keyfi metin içeren 2 dosyam olabilir. İşlevsel olarak neye ihtiyacım var böyle bir şey: for i in $(cat file1) and j in $(cat file2); do command $i $j; done Herhangi bir fikir?

3
Komut değiştirme ile başka bir komuta nasıl argüman oluşturabilirim
Bunu takiben: Kabuk komutu yerine koymada beklenmedik davranış Bazıları meşru bir şekilde boşluklar (ve muhtemelen başka şeyler) içerebilir argümanların büyük bir listesini alabilir bir komut var Tırnaklar ile benim için bu argümanları üretebilecek bir senaryo yazdım, ancak çıktıyı kopyalayıp yapıştırmalıyım. ./somecommand <output on stdout with quoting> ./othercommand some_args <output from …

4
Bash'in Dosya Okuma Komutu Değişikliğini Anlama
Bash'in aşağıdaki çizgiyi tam olarak nasıl ele aldığını anlamaya çalışıyorum: $(< "$FILE") Bash man sayfasına göre, bu şuna eşdeğerdir: $(cat "$FILE") ve bu ikinci çizginin mantık çizgisini takip edebilirim. Bash değişken genişleme gerçekleştirir $FILE, komut yerine geçer, değerini $FILEverir cat, cat içeriğini $FILEstandart çıktıya çıkarır, tüm satırı içerideki komuttan kaynaklanan …

2
Atamalar, komut değiştirme yerine çıkış durumundaki komutlar gibidir?
POSIX mermilerinde aşağıdaki örneklere ve bunların çıktılarına bakın: false;echo $?veya false || echo 1:1 false;foo="bar";echo $?veya foo="bar" && echo 0:0 foo=$(false);echo $?veya foo=$(false) || echo 1:1 foo=$(true);echo $?veya foo=$(true) && echo 0:0 Https://stackoverflow.com/questions/6834487/what-is-the-variable-in-shell-scripting adresindeki en yüksek oyu alan yanıtta belirtildiği gibi : $? son yürütülen komutun dönüş değerini bulmak için …


3
Komut ikamesi, değişken ikamede yuvalanabilir mi?
Bir komut aracılığıyla eriştiğim belirli bir dize değişken ikame kullanmak istiyorum. Örneğin, panomuza bir şey kopyalarsam, buna böyle erişebilirim. $ xclip -o -selection clipboard Here's a string I just copied. Eğer bir değişkene atarsam, değişken üzerinde değişiklik yapabilirim. $ var=$(xclip -o -selection clipboard) $ echo $var Here's a string I …

1
Neden bir alt kabuğu alıntılayıp sonuçları yankıya aktarmanın sonunda yeni bir satır yok?
Ne zaman ls | grep pnggrep çıktı yapmak : 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (Dosya adı, satır, dosya, satır) sonra echo $(ls | grep png)çıktılar: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (dosya adı, kelime bölme alanı, dosya adı, satırsonu !! yankıdan !!) Her şey yolunda, ama ben kelime bölme: önlemek için bunu yaptığınızda echo "$(ls | grep …
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.