Меня попросили написать простой скрипт на bash, который будет использоваться внутри операторов if.Он принимает один аргумент и, в зависимости от результата вычислений внутри этого скрипта, либо передает if, либо нет.Это должно быть что-то вроде функции, возвращающей true или false внутри оператора if.
Это можно использовать так:
if ./script_name argument ; then
...
fi
Внутри указанного скрипта я пытался создать функцию, которая требует вычислений, чтобыиспользовал return 0
или return 1
, но я так и не получил удовлетворительных результатов - несмотря на правильность вычислений, оператор if всегда выполнялся.Затем я переключился на «true» или «false», но с теми же результатами.
#!/bin/bash
function function_name () {
# calculations...
if [ something ]
then
true
else
false
fi
}
Использование приведенного выше сценария таким образом:
if ./script_name argument; then echo "True"; else echo "False"; fi
всегда печатает True, независимо от аргумента,Нет ошибокРасчеты верны - пробовал без return
, но с echo 0 / echo 1
в терминале, и он выводил их оба соответственно аргументу (правильно).