var v = 42; echo next
const c = 99
setvar dq = 'zz'
setglobal g = "yy"
proc p { echo hi }
func myFunc(x; offset=0) { return (x) }
call len('str'); echo next
call len('str')
= len(g); echo next
= len(g)
call myFunc(42; offset=10); echo next
echo \# not a comment
echo \\ backslash
if test --file / {
echo 'exists'
} elif true {
echo 'true'
} else {
echo 'else'
}
case (42) {
(42) { echo 'match' }
/d+/ { echo 'pattern' }
'str' { echo 'str' }
(else) { echo 'other' }
}
for x in a b {
echo $x
}
while false {
echo hi
}
echo not#comment
echo \'single \'single \"double \"double
echo '/usr/bin'
echo r'C:\Program Files\'
var r1 = '/usr/bin/'
var r2 = r'C:\Program Files\'
echo ls --foo='bar'
echo ls --foo=r'bar'
echo ls bar'bar'
echo ls -r'bar'
'echo'
r'echo'
u'echo'
$"echo"
echo "hi $r1 \$ \" \\"
var dq = "hi $r2 \$ \" \\"
echo $"hi $r1 \$ \" \\"
var dq = $"hi $r2 \$ \" \\"
echo --foo=$"bar"
echo b'hi \t \' \\'
var j8 = b'hi \t \' \\'
echo u'hi \t \' \\'
var j8 = u'hi \t \' \\'
var empty = ''
echo '''
$r1
C:\Program Files\
one '
two ''
''' | cat
var x = '''
C:\Program Files\
one '
two ''
''' ++ empty
echo r'''
$r1
C:\Program Files\
one '
two ''
''' | cat
var x = r'''
C:\Program Files\
one '
two ''
''' ++ empty
echo """
$r1
one "
two ""
"""
var x = """
$r1
one "
two ""
\""""
echo $"""
$r1
\$ one "
\$ two ""
\"""" other
var x = $"""
$r1
\$ one "
\$ two ""
""" ++ 'other'
echo b'''
one '
two ''
three \'''
''' | cat
var x = b'''
j8 \'''
one '
two ''
three \'''
''' ++ empty
echo u'''
one '
two ''
three \'''
''' | cat
var x = u'''
j8 \'''
one '
two ''
three \'''
''' ++ empty
var mydict = {hi: 42}
echo $[42 + mydict['hi']]
echo "sum = $[42 + mydict['hi']]"
echo "$[42 + mydict["hi"]]"
echo "hi $["inner"]"
var ch = 'i'
echo $[42 + mydict["h$[ch]"]]
echo "$[42 + mydict["h$[ch]"]]"
var base_dir = '/bin'
var file = 'zz'
echo $base_dir/file /tmp/$file-suffix
echo "$base_dir/file /tmp/$file-suffix"
var name42 = x
var name42x = x
var _x = x
echo $name42 $name42x
echo ${name42} ${name42x}
echo $_x ${_x}
echo ${file:-} "foo ${base_dir:-}"
echo ${12:-} "foo ${12:-}"
echo foo@example.com foo@example
var my_array = :| echo b c |
echo x @my_array
setvar myarray = :| a b c @my_array |
@my_array
set -- {0..11}
echo $0 ${11}
echo bad $00 $1a
echo "hi $0 x ${11}"
echo "bad $00 $1a"
... echo
multi-
line ;
echo \
multi- \
line \
$(echo next)
echo $(
echo 1
echo 2
for x in 3 4 { echo $x }
)