Если вы спрашиваете, можно ли выбрать параметр $1
так, чтобы это условие выполнялось для любого целочисленного значения $TOTO
, то да:
./yourscript "0 -o foo"
Это превращает любое состояние в
test 1234 -eq 0 -o foo
Это эквивалент 1234 == 0 || "foo"
в других языках, с одним нерелевантным сравнением с ИЛИ со значением истинности строки foo
.
Поскольку test
считает все непустые строки истинными, это выражение всегда истинно.
Вы в основном дали решение для root-me.org/fr/Challenges/App-Script/…
Как сказал @ тот другой парень, «0 -o независимо» пропустит проверку. Причина, по которой это происходит, заключается в опции -o тестового двоичного файла:
EXPRESSION1 -o EXPRESSION2
either EXPRESSION1 or EXPRESSION2 is true
Итак, в основном, что скрипт будет делать, это проверять, если
$TOTO -eq 0 || "whatever"
Поскольку непустая строка всегда равна True, общий результат проверки будет True, и вот обход :)
Хороший ответ, но вы должны объяснить, почему это работает.