SORU
2 ŞUBAT 2010, Salı


Nasıl Çift ya da tek ayraç, parantez, ayraç kullanmak için

Ayraç kullanımı, parantez, Bash ayraç olarak tek veya çift formları arasındaki fark beni şaşırttı. Net bir açıklama var mı?

CEVAP
2 ŞUBAT 2010, Salı


Bash, test [ yerleşiklere.

double bracket ek işlevler sağlar. Örneğin, -a -o yerine && || Kullanım ve düzenli ifade ile eşleşen bir operatör =~ var.

Parantez, bir değişken adı sınırlayan ek olarak şeyler yapabilirsiniz böylece parameter expansion gibi: için kullanılır

  • Bir değişkenin içeriğini kesecek

    $ var="abcde"; echo ${var%d*}
    abc

  • Kısaltmaları sed benzer olun

    $ var="abcde"; echo ${var/de/12}
    abc12

  • Varsayılan değeri kullanın

    $ default="hello"; unset var; echo ${var:-$default}
    hello

  • ve çok daha fazlası

Ayrıca, brace açılımları genellikle döngüler tekrarlanır üzerinde olan dizeleri listeler oluşturun:

$ echo f{oo,ee,a}d
food feed fad

$ mv error.log{,.OLD}
(error.log is renamed to error.log.OLD because the brace expression
expands to "mv error.log error.log.OLD")

$ for num in {000..2}; do echo "$num"; done
000
001
002

$ echo {00..8..2}
00 02 04 06 08

$ echo {D..T..4}
D H L P T

Önde gelen sıfır ve artış özellikler Bash 4 önce mevcut değildi, unutmayın.

Brace açılımları hakkında hatırlattığın için gboffi için teşekkürler.

Çift parantez arithmetic operations için kullanılır:

((a  ))

((meaning = 42))

for ((i=0; i<10; i  ))

echo $((a   b   (14 * c)))

ve onlar sana dolar tamsayı ve dizi değişkenleri üzerinde işaretler atlamak için izin ve okunabilirlik için operatörler için boşluk vardır.

Tek bir parantez de array endeksleri için kullanılır:

array[4]="hello"

element=${array[index]}

Kaşlı ayraç için gerekli (en/?) sağ taraftaki dizi başvuruları.

ephemientyorum parantez de uzaktır için kullanılan hatırlattı. Ve diziler oluşturmak için kullanılır.

array=(1 2 3)
echo ${array[1]}
2

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • picster

    picster

    20 NİSAN 2006
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011