You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
1.8 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

echo T.getline: test getline function
awk=${awk-../a.out}
who >foo1
cat foo1 | $awk '
BEGIN {
while (getline)
print
exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (bare getline)'
who >foo1
cat foo1 | $awk '
BEGIN {
while (getline xxx)
print xxx
exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (getline xxx)'
$awk '
BEGIN {
while (getline <"/etc/passwd")
print
exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <file)'
cat /etc/passwd | $awk '
BEGIN {
while (getline <"-") # stdin
print
exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <"-")'
$awk '
BEGIN {
while (getline <ARGV[1])
print
exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <arg)'
$awk '
BEGIN {
while (getline x <ARGV[1])
print x
exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline x <arg)'
$awk '
BEGIN {
while (("cat " ARGV[1]) | getline)
print
exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline)'
$awk '
BEGIN {
while (("cat " ARGV[1]) | getline x)
print x
exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline x)'
$awk ' BEGIN { print getline <"/glop/glop/glop" } ' >foo
echo '-1' >foo1
cmp -s foo foo1 || echo 'BAD: T.getline (non-existent file)'
echo 'false false equal' >foo1
$awk 'BEGIN {
"echo 0" | getline
if ($0) printf "true "
else printf "false "
if ($1) printf "true "
else printf "false "
if ($0==$1) printf "equal\n"
else printf "not equal\n"
}' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad $0 type in cmd|getline'
echo 'L1
L2' | $awk 'BEGIN { $0="old stuff"; $1="new"; getline x; print}' >foo1
echo 'new stuff' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad update $0'