Add a simple Bash script for syntax tests

This commit is contained in:
Ethan P 2020-10-04 00:32:34 -07:00 committed by David Peter
parent 51d25e5859
commit 02dcb01120
2 changed files with 144 additions and 0 deletions

View File

@ -0,0 +1,72 @@
#!/usr/bin/env bash
function incompatible_function() {
 :
}
compatible_function() {
 if ! [ "$1" == "yes" ]
 then
 return 3;:;
 fi
 
 (
 exec 3>&1
 echo "finished! $@? $*." >&3 \
 | cat | bat - | cat
 exit 4
 ) || exit $?
}
if command -v bat &> /dev/null; then
 var=1
 printf "%s...\n" "$(echo some text)"
 while true; do
 echo $var
 if { [[ "$var" -eq 1 && ( true || false ) ]] || false 2>&1 1> /dev/null; } &> /dev/null; then
 var="$(cat <<< "two")"
 continue 1
 fi
 case "$var" in
 "two") var="three" ;;
 three) var="four" ;;
 fo*r)
 var=five
 ;;
 "fi"ve)
 var="$(
 cat << END
six > $var
END
 )"
 ;;
 $'six\n' | *six*)
 echo "?"
 seven=seven
 while read -r line
 do
 var="$line"
 done << "HEREDOC"
1
2
$seven
HEREDOC
 ;;
 *'sev'*)
 export var=eight
 unset var
 ;;
 '')
 { incompatible_function && false; } || compatible_function "yes"
 break
 ;;
 esac
 continue
 done
fi

View File

@ -0,0 +1,72 @@
#!/usr/bin/env bash
function incompatible_function() {
:
}
compatible_function() {
if ! [ "$1" == "yes" ]
then
return 3;:;
fi
(
exec 3>&1
echo "finished! $@? $*." >&3 \
| cat | bat - | cat
exit 4
) || exit $?
}
if command -v bat &> /dev/null; then
var=1
printf "%s...\n" "$(echo some text)"
while true; do
echo $var
if { [[ "$var" -eq 1 && ( true || false ) ]] || false 2>&1 1> /dev/null; } &> /dev/null; then
var="$(cat <<< "two")"
continue 1
fi
case "$var" in
"two") var="three" ;;
three) var="four" ;;
fo*r)
var=five
;;
"fi"ve)
var="$(
cat << END
six > $var
END
)"
;;
$'six\n' | *six*)
echo "?"
seven=seven
while read -r line
do
var="$line"
done << "HEREDOC"
1
2
$seven
HEREDOC
;;
*'sev'*)
export var=eight
unset var
;;
'')
{ incompatible_function && false; } || compatible_function "yes"
break
;;
esac
continue
done
fi