⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shprompt

📁 linux下bash的源码
💻
字号:
## 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 + -