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

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007