coshell.bash

来自「android-w.song.android.widget」· BASH 代码 · 共 128 行

BASH
128
字号
# vi:set sts=2 sw=2 ai:## coshell.bash - Control shell coprocesses (see coprocess.bash).#function coshell (){  while (( $# > 0 )) ; do    case "$1" in      #      # coshell open      #      o|op|ope|open)	shift	coprocess open "$@"	local ret=$?	# This should eat any ssh error messages or what not.	coshell eval : >/dev/null 2>&1	return $ret	;;      #      # coshell close      #      c|cl|clo|close)	shift	coprocess close "$@"	return $?	;;      #      # coshell eval      #      e|ev|eva|eval)	shift	local cookie=$RANDOM	if (( $# == 0 )) ; then	  echo "coshell eval: no argumentsl" >&2	  return 1	fi	if [ x$coprocess_pid = x ] ; then	  echo "coshell eval: no active coshell" >&2	  return 1	fi	coprocess print "$@" 	coprocess print "coprocess_rc=\$?"	coprocess print "printf 'coprocess-$cookie----\n%d\n' \$coprocess_rc"	if [ x$coprocess_pid = x ] ; then	  return 0	fi	local ol	while coprocess read ol ; do	  case "$ol" in	    *coprocess-$cookie----*)	      ol="${ol%coprocess-$cookie----}"	      echo -n "$ol"	      break	      ;;	  esac	  echo "$ol"	done	coprocess read ol	return $ol	;;      #      # coshell sendfile      #      s|se|sen|send|sendf|sendfi|sendfil|sendfile)	shift	if (( $# != 2 )) ; then	  echo "coshell sendfile: syntax is 'coshell sendfile SRC TARGET'" >&2	  return 1	fi	if [ x$coprocess_pid = x ] ; then	  echo "coshell sendfile: no active coshell" >&2	  return 1	fi	local target=$2	if coshell test -d "$target" ; then	  target="$target/${1##*/}" 	fi	coprocess print "uudecode <<END_OF_FILE"	uuencode -m "$target" <$1 |coprocess print --stdin	coshell eval "END_OF_FILE"	return $?	;;      #      # coshell getfile      #      g|ge|get|getf|getfi|getfil|getfile)	shift	if (( $# != 2 )) ; then	  echo "coshell getfile: syntax is 'coshell getfile SRC TARGET'" >&2	  return 1	fi	if [ x$coprocess_pid = x ] ; then	  echo "coshell getfile: no active coshell" >&2	  return 1	fi	local target=$2	if test -d "$target" ; then	  target="$target/${1##*/}" 	fi	coshell eval uuencode -m "$target" "<" "$1" |uudecode	return $?	;;      *)	coshell eval "$@"	return $?	;;    esac    shift  done  coprocess status  return $?}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?