SORU
9 HAZİRAN 2010, ÇARŞAMBA


Sh nasıl bir dize bir satır alabilir miyim?

Bu

STR="Hello\nWorld"
echo $STR

çıkış üretir

Hello\nWorld

yerine

Hello
World

Ben bir dize bir satır olması için ne yapmalıyım?

Not:Bu soru ile ilgili değilecho. echo -e, farkındayım ama bir argüman olarak bir dize bir satır içerir) geçen izin veren bir çözüm arıyorumdiğeryorumlamak için benzer bir seçeneği olmayan komutlar \n'ler olarak karakterlerine.

CEVAP
5 Temmuz 2010, PAZARTESİ


Çözüm:

Anladım. Çözüm örneğin $'string' kullanmak için:

$ STR=$'Hello\nWorld'
$ echo "$STR"
Hello
World

Burada Bash manual sayfasından bir alıntı

   Words of the form $'string' are treated specially.  The word expands to
   string, with backslash-escaped characters replaced as specified by  the
   ANSI  C  standard.  Backslash escape sequences, if present, are decoded
   as follows:
          \a     alert (bell)
          \b     backspace
          \e
          \E     an escape character
          \f     form feed
          \n     new line
          \r     carriage return
          \t     horizontal tab
          \v     vertical tab
          \\     backslash
          \'     single quote
          \"     double quote
          \nnn   the eight-bit character whose value is  the  octal  value
                 nnn (one to three digits)
          \xHH   the  eight-bit  character  whose value is the hexadecimal
                 value HH (one or two hex digits)
          \cx    a control-x character

   The expanded result is single-quoted, as if the  dollar  sign  had  not
   been present.

   A double-quoted string preceded by a dollar sign ($"string") will cause
   the string to be translated according to the current  locale.   If  the
   current  locale  is  C  or  POSIX,  the dollar sign is ignored.  If the
   string is translated and replaced, the replacement is double-quoted.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009
  • skiesofblack.net

    skiesofblack

    14 HAZİRAN 2009
  • VOICE TV

    VOICE TV

    2 Aralık 2010