📄 shprompt
字号:
## shprompt -- give a prompt and get an answer satisfying certain criteria## shprompt [-dDfFsy] prompt# s = prompt for string# f = prompt for filename# F = prompt for full pathname to a file or directory# d = prompt for a directory name# D = prompt for a full pathname to a directory# y = prompt for y or n answer## Chet Ramey# chet@ins.CWRU.Edutype=fileOPTS=dDfFsysucceed(){ echo "$1" exit 0}while getopts "$OPTS" cdo case "$c" in s) type=string ;; f) type=file ;; F) type=path ;; d) type=dir ;; D) type=dirpath ;; y) type=yesno ;; ?) echo "usage: $0 [-$OPTS] prompt" 1>&2 exit 2 ;; esacdoneif [ "$OPTIND" -gt 1 ] ; then shift $[$OPTIND - 1]fiwhile :do case "$type" in string) echo -n "$1" 1>&2 read ans || exit 1 if [ -n "$ans" ] ; then succeed "$ans" fi ;; file|path) echo -n "$1" 1>&2 read ans || exit 1 # # use `fn' and eval so that bash will do tilde expansion for # me # eval fn="$ans" case "$fn" in /*) if test -e "$fn" ; then succeed "$fn" else echo "$0: '$fn' does not exist" 1>&2 fi ;; *) if [ "$type" = "path" ] ; then echo "$0: must give full pathname to file" 1>&2 else if test -e "$fn" ; then succeed "$fn" else echo "$0: '$fn' does not exist" 1>&2 fi fi ;; esac ;; dir|dirpath) echo -n "$1" 1>&2 read ans || exit 1 # # use `fn' and eval so that bash will do tilde expansion for # me # eval fn="$ans" case "$fn" in /*) if test -d "$fn" ; then succeed "$fn" elif test -e "$fn" ; then echo "$0 '$fn' is not a directory" 1>&2 else echo "$0: '$fn' does not exist" 1>&2 fi ;; *) if [ "$type" = "dirpath" ] ; then echo "$0: must give full pathname to directory" 1>&2 else if test -d "$fn" ; then succeed "$fn" elif test -e "$fn" ; then echo "$0 '$fn' is not a directory" 1>&2 else echo "$0: '$fn' does not exist" 1>&2 fi fi ;; esac ;; yesno) echo -n "$1" 1>&2 read ans || exit 1 case "$ans" in y|Y|[yY][eE][sS]) succeed "yes" ;; n|N|[nN][oO]) succeed "no" exit 0 ;; *) echo "$0: yes or no required" 1>&2 ;; esac ;; esacdoneexit 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -