Bash backtick vs parantez


2

Klasik komut yerine koyma biçiminin backticks kullandığını ve (...) formunun komut yerine koyma yerine backtick'lerin kullanıldığını okudum. Ancak, aşağıdaki kod farklı çıktılar üretir. fark ne ?

#backticks.sh
#!/bin/bash
a=`echo Hello!`   # Assigns result of 'echo' command to 'a' ...
echo $a   # output: Hello!

#parenthesis.sh
#!/bin/bash
a=(echo Hello!)   # Assigns result of 'echo' command to 'a' ...
echo $a  # output: echo 



Sadece eklemek için - biçimlendirmeyi sizin için düzelttik. Gelecekte, ön etiketler çalışır veya yalnızca {} düğmesini kullanın. Burada kullanılan markdown'ın belirli lehçeleri hakkında daha fazla bilgi için yardım da bulabilirsiniz.
Journeyman Geek

Yanıtlar:


3

Burada eksik olan şey $.

Bash, backticks, sizin tarafınızdan örneklendiği ve çevrelediği 2 komut yerine geçme şekli vardır $(command).

Kullanmanız gereken şey:

#!/bin/bash

a=$(echo Hello!)

echo $a

3
ve açıklamayı genişletmek için: a=(echo Hello!)değişkeni "echo" ve "Hello!" adlı 2 öğe içeren abir dizi olarak bildirir . Bir diziyle, (dizinin ilk elemanı) echo $aeşdeğerdirecho ${a[0]}
glenn jackman

Bu genişletilmiş açıklama çok yararlıdır!
Ravi Kumar
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.