к оглавлению

Непознаваемый shell

В.Завьялов

Немного драматургии (2009)


#ash -c 'echo "\117\113"'
OK
# bash -c 'echo "\117\113"'
\117\113

# bash -c "echo $'\117\113'"
OK
# ash -c "echo $'\117\113'"
$OK

$ ash -c "echo '\117\113'"
OK
$ bash -c "echo '\117\113'"
\117\113

# bash -c 'echo -e "\0117\0113"'
OK
# ash -c 'echo -e "\0117\0113"'
-e OK

# bash -c "echo $'\x4F\x4B'"
OK
# ash -c "echo $'\x4F\x4B'"
$\x4F\x4B

...

# bash -c 'printf "\117\113\n"'
OK
# ash -c 'printf "\117\113\n"'
OK

-e (2009-12-17)

Если вы знаете и используете параметр -e, попробуйте угадать, что выдадут следующие команды:


# sh -e -c '! true; echo OK'
# sh -e -c 'false; echo OK'


# sh -e -c 'false && false; echo OK'
# sh -e -c 'false && true; echo OK'
# sh -e -c 'true && false; echo OK'