SORU
17 NİSAN 2014, PERŞEMBE


Neden bash "echo [t]" "sonucu t" değil "[t]"

Bu karakter için t olur ve değeri kök. Oldukça şaşırtıcı

$ echo [s]
[s]
$ echo [t]
t
$ echo [ t ]
[ t ]
$ echo [root]
t

CEVAP
17 NİSAN 2014, PERŞEMBE


[] karakter sınıfı gösterir ve geçerli dizinde bir dosya t adlı.

Aşağıda bir daha açıklamak gerekir:

$ ls
$ echo [t]
[t]
$ touch t
$ echo [t]
t
$ echo [root]
t
$ touch r
$ echo [root]
r t

Eğer [], kaçış içinde bir yankı istersen 14**:

echo \[$var]

Farkı şimdi inceleyin:

$ echo \[root]
[root]

ya da, Glenn Jackman belirttiği gibi, alıntı:

$ echo '[root]'
[root]
$ echo "[root]"
[root]

Shell Command Language aşağıdaki karakterler bağlam bağlı olarak: kabuk için özel olduğunu söyler

*   ?   [   #   ~   =   %

Ayrıca, aşağıdaki karakterler ise kendilerini temsil etmek için ise tırnak gerekir:

|  &  ;  <  >  (  )  $  `  \  "  '  <space>  <tab>  <newline>

Ayrıca printf için kullanabilirsinizbelirlemekbelirli bir giriş karakter argümanlar alıntı değilse kaçmış olması gerek. Yani [s] örneğin:

$ printf "%q" "[s]"
\[s\]

Başka bir örnek:

$ printf "%q" "[0-9]|[a-z]|.*?$|1<2>3|(foo)"
\[0-9\]\|\[a-z\]\|.\*\?\$\|1\<2\>3\|\(foo\)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012