Você pode fornecer uma opção de linha de comando para sua função. Usar opções de linha de comando que não usam argumentos é uma maneira comum de fornecer valores binários / booleanos ("on / off", "true / false", "ativar / desativar") para shell scripts, funções de shell e utilitários em geral.
foo () {
local flag=0
while getopts 't' opt; do
case $opt in
t) flag=1 ;;
*) echo 'Error in command line parsing' >&2
exit 1
esac
done
shift "$(( OPTIND - 1 ))"
local param1=$1
local param2=$2
if [ "$flag" -eq 1 ]; then
# do things for "foo -t blah blah"
else
# do things for "foo blah blah"
fi
}
A opção -t
age como um sinalizador booleano para o usuário. Usá-lo definiria flag
dentro da função como 1. A opção -t
seria usada como o primeiro argumento para a função.
Chamar a função seria feito usando
foo "some value" "some other value"
ou
foo -t "some value" "some other value"
em que a última chamada definiria a variável flag
na função como 1.