Debajo, Tweaks
altera la tecla dconf
/org/gnome/desktop/interface/gtk-enable-primary-paste
Puede hacer lo mismo en la terminal, ya sea a través de dconf
(, p. apagarlo):
dconf write /org/gnome/desktop/interface/gtk-enable-primary-paste false
o mediante gsettings
(, p. para volver a encenderlo):
gsettings set org.gnome.desktop.interface gtk-enable-primary-paste true
Похоже, вы пропустили печать сообщения, а вместо этого передали всю строку как команду для запуска. Добавьте echo
перед строкой
case "$o" in
h )
echo "Usage:
sh $(basename "$0") -h Displays help message
sh $(basename "$0") arg Outputs...
where:
-h help option
arg argument."
exit 0
;;
Но, как правило, предпочитается стиль добавления heredoc, а не вывод многострочной строки -в виде
show_help() {
cat <<'EOF'
Usage:
sh $(basename "$0") -h Displays help message
sh $(basename "$0") arg Outputs...
where:
-h help option
arg argument.
EOF
}
и используйте функцию show_help
для флага -h
.
Также для пустых флагов аргумента первые вызовы getopts()
выходят из цикла, поэтому вы не можете иметь дескриптор внутри цикла. Проведите общую проверку пустых аргументов перед вызовомgetopts()
if [ "$#" -eq 0 ]; then
printf 'no argument flags provided\n' >&2
exit 1
fi
С вашим более ранним определением аргумента flag :h
предполагает, что -h
не принимает никаких аргументов. Предложение :)
применяется только тогда, когда вы определяете -h
для приема аргумента, т. е. когда оно определено как :h:
. Только тогда вы запускаете его без передачи аргументов, код под :)
выполняется. Собираем весь сценарий
#!/usr/bin/env bash
if [ "$#" -eq 0 ]; then
printf 'no argument flags provided\n' >&2
exit 1
fi
show_help() {
cat <<'EOF'
Usage:
sh $(basename "$0") -h Displays help message
sh $(basename "$0") arg Outputs...
where:
-h help option
arg argument.
EOF
}
while getopts ":h:" opt; do
case "$opt" in
h )
show_help
exit 1
;;
\? )
echo "Invalid option -$OPTARG" 1>&2
exit 1
;;
: )
echo "Invalid option -$OPTARG requires argument" 1>&2
exit 1
;;
esac
done
и запускаем его сейчас
$ bash script.sh
no argument flags provided
$ bash script.sh -h
Invalid option -h requires argument
$ bash script.sh -s
Invalid option -s