File: gawk.info, Node: Scalar Constants, Next: Nondecimal-numbers, Up: Constants 6.1.1.1 Numeric and String Constants .................................... A "numeric constant" stands for a number. This number can be an integer, a decimal fraction, or a number in scientific (exponential) notation.(1) Here are some examples of numeric constants that all have the same value: 105 1.05e+2 1050e-1 A "string constant" consists of a sequence of characters enclosed in double quotation marks. For example: "parrot" represents the string whose contents are 'parrot'. Strings in 'gawk' can be of any length, and they can contain any of the possible eight-bit ASCII characters, including ASCII NUL (character code zero). Other 'awk' implementations may have difficulty with some character codes. Some languages allow you to continue long strings across multiple lines by ending the line with a backslash. For example in C: #includeint main() { printf("hello, \ world\n"); return 0; } In such a case, the C compiler removes both the backslash and the newline, producing a string as if it had been typed '"hello, world\n"'. This is useful when a single string needs to contain a large amount of text. The POSIX standard says explicitly that newlines are not allowed inside string constants. And indeed, all 'awk' implementations report an error if you try to do so. For example: $ gawk 'BEGIN { print "hello, > world" }' -| gawk: cmd. line:1: BEGIN { print "hello, -| gawk: cmd. line:1: ^ unterminated string -| gawk: cmd. line:1: BEGIN { print "hello, -| gawk: cmd. line:1: ^ syntax error Although POSIX doesn't define what happens if you use an escaped newline, as in the previous C example, all known versions of 'awk' allow you to do so. Unfortunately, what each one does with such a string varies. (d.c.) 'gawk', 'mawk', and the OpenSolaris POSIX 'awk' (*note Other Versions::) elide the backslash and newline, as in C: $ gawk 'BEGIN { print "hello, \ > world" }' -| hello, world In POSIX mode (*note Options::), 'gawk' does not allow escaped newlines. Otherwise, it behaves as just described. BWK 'awk' and BusyBox 'awk' remove the backslash but leave the newline intact, as part of the string: $ nawk 'BEGIN { print "hello, \ > world" }' -| hello, -| world ---------- Footnotes ---------- (1) The internal representation of all numbers, including integers, uses double-precision floating-point numbers. On most modern systems, these are in IEEE 754 standard format. *Note Arbitrary Precision Arithmetic::, for much more information.