resoud false positif dans expansions et redirections

This commit is contained in:
Hugo LAMY
2021-12-21 12:58:21 +01:00
parent 81db47d2f4
commit 49ca6fed0a
3 changed files with 69 additions and 56 deletions

View File

@@ -12,9 +12,52 @@ echo $?
#---------------------------------------------
# Race condition, unpredictable behaviour
echo DOET HET NIET > test1 | cat test1
#---------------------------------------------
# redirection stderr
echo hello > out1.txt > out2.txt > out3.txt 2> err1.txt 2> err2.txt 2> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
echo hello >> out1.txt >> out2.txt >> out3.txt 2>> err1.txt 2>> err2.txt 2>> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
ls > out1.txt > out2.txt > out3.txt 2> err1.txt 2> err2.txt 2> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
ls >> out1.txt >> out2.txt >> out3.txt 2>> err1.txt 2>> err2.txt 2>> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
ls no_such_file > out1.txt > out2.txt > out3.txt 2> err1.txt 2> err2.txt 2> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
ls no_such_file >> out1.txt >> out2.txt >> out3.txt 2>> err1.txt 2>> err2.txt 2>> err3.txt
cat out1.txt out2.txt out3.txt err1.txt err2.txt err3.txt
./a.out 3> file3 2> file2 1> file1
cat file3 file2 file1
printf '#include<unistd.h>\nint main(){write(1, "fd1\\n", 4);write(2, "fd2\\n", 4);write(3, "fd3\\n", 4);}' > a.c && gcc a.c
./a.out 1> file1 2> file2 3> file3
cat file1 file2 file3
printf '#include<unistd.h>\nint main(){write(1, "fd1\\n", 4);write(2, "fd2\\n", 4);write(3, "fd3\\n", 4);}' > a.c && gcc a.c
echo a 1> 1.txt 2> 2.txt 3> 3.txt
./a.out 1>> 1.txt 2>> 2.txt 3>> 3.txt
cat 1.txt 2.txt 3.txt
printf '#include<unistd.h>\nint main(){write(1, "fd1\\n", 4);write(2, "fd2\\n", 4);write(3, "fd3\\n", 4);}' > a.c && gcc a.c
echo a 3> 3.txt 2> 2.txt 1> 1.txt 2> 2.txt 3> 3.txt
echo b 1>> 1.txt 2>> 2.txt 3>> 3.txt 2>> 2.txt 1>> 1.txt
./a.out 1>> 1.txt 2>> 2.txt 3>> 3.txt 2>> 2.txt 1>> 1.txt
cat 1.txt 2.txt 3.txt
printf '#include<unistd.h>\nint main(){write(1, "fd1\\n", 4);write(2, "fd2\\n", 4);write(3, "fd3\\n", 4);}' > a.c && gcc a.c
#----------------------------------------------
# ; Semicolon separator
@@ -551,3 +594,24 @@ echo \{
echo \}
echo \~
echo \$
echo "\$"
export HELLO=hello
echo \$HELLO
export HELLO=hello
echo \\$HELLO
export HELLO=hello
echo "\$HELLO"
export HELLO=hello
echo "\\$HELLO"
export HELLO=hello
echo \\"$HELLO"
export HELLO=hello
echo "\"\"$HELLO"