1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
#!/bin/bash
# vim: set filetype=sh :
# file: example.ia-c-expr
# copyright: Bernd Schumacher <bernd.schumacher@hpe.com> (2007-2020)
# license: GNU General Public License, version 3
# description: example using check normally but disable it for some functions
# see also: test.ia-c-expr
set -e
set -u
. ./ia
sub()
{
eval "$ia_init"
# AC"DC
ia_stdout "^AC\"DC$" # [ "^AC\"DC$" = '^AC"DC$' ]
ia_add "echo \"AC\\\"DC\"" # [ "$(eval "echo \"AC\\\"DC\"")" = 'AC"DC' ]
# dc="" AC$dc
ia_add "dc=\"\""
ia_stdout "^AC$"
ia_add "echo \"AC\$dc\""
# dc="DC" AC$dc
ia_add "dc=\"DC\""
ia_stdout "^ACDC$"
ia_add "echo \"AC\$dc\""
# ACDC$
ia_stdout "^ACDC\\\$$"
ia_add "echo \"ACDC$\""
ia_stdout "^ACDC\\\$$"
ia_add "cat <<'END'
ACDC$
END
"
ia_stdout "^ACDC\\\$$"
ia_add "echo \"ACDC$\""
# AC\DC
ia_stdout '^AC\\DC$'
ia_add "echo \"AC\\\\DC\"" # [ "AC\\\\DC" = 'AC\\DC' ]
ia_stdout '^AC\\DC$'
ia_add "echo \"AC\\DC\"" # [ "AC\\DC" = 'AC\DC' ]
ia_stdout '^AC\\DC$'
ia_add "cat <<'END'
AC\\DC
END
"
ia_stdout '^AC\\DC$'
ia_add "echo 'AC\\DC'"
ia_ignore "^1a$"
ia_ignore "^1b$"
ia_stdout "^(1a|1c)$" # stdout is favoured over ignore
ia_add "echo 1a; echo 1b; echo 1c"
ia_ignore ".*"
ia_add "echo 2a"
ia_ignore ".*"
ia_stdout ".*"
ia_add "echo 3a"
# number of backslashes 1, 3, 7, 15, 31, 63 ...
ia_stdout "^4a$"
ia_add "eval \"echo \\\"4a\\\"\""
ia_stdout "^5a$"
ia_add "eval \"eval \\\"echo \\\\\\\"5a\\\\\\\"\\\"\""
ia_stdout "^6a$"
ia_add "eval \"eval \\\"eval \\\\\\\"echo \\\\\\\\\\\\\\\"6a\\\\\\\\\\\\\\\"\\\\\\\"\\\"\""
ia_stdout "^7a$"
ia_add "eval \"eval \\\"eval \\\\\\\"eval \\\\\\\\\\\\\\\"echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"7a\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\"\\\"\""
ia_stdout "AC/DC"
ia_add "echo \"AC/DC\""
ia_stdout "AC//DC"
ia_add "echo \"AC//DC\""
ia -c
}
eval "$ia_init"
ia_add "sub <-i>" # call sub with "ia -c" from main with "ia"
ia
|