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

📄 coproc.bash

📁 android-w.song.android.widget
💻 BASH
字号:
# coprocess.bash## vi:set sts=2 sw=2 ai:#coprocess_pid=## coprocess - Start, control, and end coprocesses.#function coprocess (){  while (( $# > 0 )) ; do    case "$1" in      #      # coprocess close      #      c|cl|clo|clos|close)	shift	exec 61>&- 62<&-	coprocess_pid=	if [ "$1" = "-SIGPIPE" ] ; then	  # Only print message in an interactive shell	  case "$-" in	    *i*)	      echo 'SIGPIPE' >&2	      ;;	  esac	  return 1	fi	return 0	;;      #      # coprocess open      #      o|op|ope|open)	shift	local fifo="/var/tmp/coprocess.$$.$RANDOM"	local cmd="/bin/bash"	if (( $# > 0 )) ; then	  cmd="$@"	fi	mkfifo "$fifo.in" || return $?	mkfifo "$fifo.out" || {	  ret=$?	  rm -f "$fifo.in"	  return $?	}	( "$@" <$fifo.in >$fifo.out ; rm -f "$fifo.in" "$fifo.out" ) &	coprocess_pid=$!	exec 61>$fifo.in 62<$fifo.out	return 0	;;      #      # coprocess print - write to the coprocess      #      p|pr|pri|prin|print)	shift	local old_trap=$(trap -p SIGPIPE)	trap 'coprocess close -SIGPIPE' SIGPIPE	if [ $# -eq 1 ] && [ "$1" = "--stdin" ] ; then	  cat >&61	else	  echo "$@" >&61	fi	local ret=$?	eval "$old_trap"	return $ret	;;      #      # coprocess read - read from the coprocess      #      r|re|rea|read)	shift	local old_trap=$(trap -p SIGPIPE)	trap '_coprocess_close -SIGPIPE' SIGPIPE	builtin read "$@" <&62	local ret=$?	eval "$old_trap"	return $ret	;;      s|st|sta|stat|statu|status)	if [ -z "$coprocess_pid" ] ; then	  echo 'no active coprocess'	  return 1	else	  echo "  coprocess is active [$coprocess_pid]"	  return 0	fi	;;      *)	coprocess print "$@"	return $?	;;    esac    shift  done  coprocess status  return $?}

⌨️ 快捷键说明

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