Para a persistência de variáveis, você precisa de um mecanismo que não seja a memória principal. Os arquivos são uma boa escolha. Aqui eu uso um atalho bash para $(cat filename)
declare -x WORKING=$(< ~/.working)
Você não precisa echo $(pwd)
, apenas pwd
function pp { pwd > ~/.working; }
Por "fechar o escopo", suponho que você queira manter as variáveis locais locais na função: use o local
builtin
function p {
local OPTIND OPTARG
local optstring=':fd' # declare other options here: see "help getopts"
local has_f=false has_d=false
while getopts $optstring option; do
case $option in
f) has_f=true ;;
d) has_d=true ;;
?) echo "invalid option: -$OPTARG"; return 1 ;;
esac
done
shift $((OPTIND - 1))
if $has_f ; then
do something if -f
elif $has_d ; then
do something if -d
fi
# ... whatever else you have to do ...
}