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


3
Bash içinde $ (komut yerine koyma) içinde alıntı yapmak
Bash ortamımda boşluk içeren değişkenler kullanıyorum ve bu değişkenleri komut değiştirme içinde kullanıyorum. Maalesef SE'de cevabı bulamıyorum. Değişkenlerimi teklif etmenin doğru yolu nedir? Bunlar iç içe geçmişse nasıl yapmalıyım? DIRNAME=$(dirname "$FILE") ya da ikamenin dışında teklif verebilir miyim? DIRNAME="$(dirname $FILE)" ya da her ikisi de? DIRNAME="$(dirname "$FILE")" veya geri keneler …

7
Bir önceki komutun çıktısını argüman olarak bir sonrakine ilet
Stdout ( command1 -p=aaa -v=bbb -i=4) 'a veri veren bir komut kullandım . Çıkış çizgisi aşağıdaki değere sahip olabilir: rate (10%) - name: value - 10Kbps Bu oranı 'depolamak' için saklamak istiyorum (burada piponun faydalı olacağını tahmin ediyorum). Ve son olarak, bu oranın ikinci komuttaki bir parametrenin değeri olmasını isterim …



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 .

6
Komut değiştirme: newline'da bölme ancak boşluk bırakma
Bu sorunu birkaç yolla çözebileceğimi biliyorum, ancak bunu yalnızca bash yerleşiklerini kullanarak yapmanın bir yolu olup olmadığını merak ediyorum ve değilse, bunu yapmanın en etkili yolu nedir. İçeriği olan bir dosyam var AAA B C DDD FOO BAR bununla birlikte sadece birkaç satır olduğunu ve her satırın boşluk bırakıp bırakmayacağını …


4
`Curl | arasındaki fark nedir sh` ve `sh -c“ $ (curl) ”`?
Unix ve Linux Stack Exchange'de cevaplanabildiği için bu soru Sunucu Arızasından geçirilmiştir . 2 yıl önce göç etti . Docker için kolay bir yükleme yöntemi (örneğin) şudur: curl -sSL https://get.docker.com/ | sh Ancak, bunun gibi görünen bazılarını da gördüm (Docker örneğini kullanarak): sh -c "$(curl -sSL https://get.docker.com/)" İşlevsel olarak aynı …


1
POSIX, burada komut değiştirme içindeki alıntılanmış belgeler için ne gerektirir?
Gelen bu soru birisi bir kullanırken sorun raporları burada belgeyi içinde bir alıntı sınırlayıcı kelime ile $(...)komut ikamesi bir ters eğik çizgi, \belge tetikleyiciler içinde bir satırın sonundaki newline-birleştiren çizgi devamında , burada aynı süre belgelemek dışında beklendiği gibi komut ikamesi işleri . İşte basitleştirilmiş bir örnek belge: cat <<'EOT' …

2
yüksek oy kullanan tek satırda iç içe çift tırnak
> 3.5K oy içeren bir StackOverflow yanıtıDIR , geçerli bash betiğinin dizinine atamak için bu tek astarı içerir: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Yuvalanmış çift tırnak işaretinden şaşkınım. Anlayabildiğim kadarıyla, aşağıdaki parçalar çift tırnaklı: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... ve =(yani $( …


1
$ Teklif etmenin doğru yolu nedir ($ arg komutu)?
Beni yıllardır rahatsız eden bu bilmeceyi çözmenin tam zamanı ... Bunu zaman zaman tanıştım ve bunun bir yol olduğunu düşündüm: $(comm "$(arg)") Ve görüşümün deneyim tarafından güçlü bir şekilde desteklendiğini düşündüm. Ama artık o kadar emin değilim. Shellcheck de kararını veremez. Her ikiside: "$(dirname $0)"/stop.bash ^-- SC2086: Double quote to …

3
Kullanmak veya öğretmek için herhangi bir neden `…` yeni gelişim yerine geçecek mi?
Anladığım kadarıyla, daha kolay ve daha az hataya meyilli yuvalama ve kaçış sözdizimi nedeniyle , daha modern $(...)komut yerine `koyma sözdiziminin eski tabanlı sözdizimine göre tercih edildiğini düşünüyorum . Ayrıca, /bin/shmodern kullanımdaki çoğu stil kabukları destekliyor gibi görünüyor $(…): darbe ash (ve bu nedenle BusyBox, en gömülü Linux) tire FreeBSD …

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.