Como otros ya señalaron, lo que necesita simplemente es usar la función dentro de la instrucción if
. Aquí hay algo que quizás no sabías:
Una función puede tratarse como una forma de comando compuesto . Y según bash manual [[
es uno de los operadores que se pueden utilizar en la construcción de un comando compuesto. Por lo tanto, su función _has_string()
puede implementarse así:
$ _has_string()[[ "$1" = "string" ]]
$ if _has_string "string"; then echo "YES"; fi
YES
Por supuesto, esto no es portátil de ninguna manera, debido al operador [[
. Pero podemos hacer uso de ( )
o {}
.Así es, por ejemplo, cómo funciona esto en/bin/dash
:
$ _has_string()( [ "$1" = "string" ]; )
$ if _has_string "string"; then echo "YES"; fi
YES
$ if _has_string "nope" ; then echo "YES"; fi
$
Вы можете добавить службу, которой хотите управлять от обычного пользователя, в файл sudoers:
Добавление общих объявлений в sudoers:
https://www.atrixnet.com/allow-an-unprivileged-user-to-run-a-certain-command-with-sudo/
пример команды:
<your-user> ALL=(ALL) NOPASSWD: /usr/bin/systemctl start program.service