Возможно, не, что Вы просите, но это должно работать в некоторой степени, чтобы определить, что интерпретатору, в настоящее время интерпретирующему его для некоторых, нравится
osh
),bash
),ksh88
, ksh93
, pdksh
, mksh
),zsh
,posh
),yash
),rc
оболочка,akanga
оболочка,wish
Интерпретатор TCL,tclsh
Интерпретатор TCL,expect
Интерпретатор TCL,cmd.exe
, command.com
(MS-DOS, FreeDOS...). 'echo' +"'[{php }\
@GOTO DOS [exit[set 1 [[set 2 package] names];set 3 Tcl\ [info patchlevel];\
if {[lsearch -exact $1 Expect]>=0} {puts expect\ [$2 require Expect]\ ($3)} \
elseif {[lsearch -exact $1 Tk]>=0} {puts wish\ ($3,\ Tk\ [$2 require Tk])} \
else {puts $3}]]]' >/dev/null ' {\">/dev/null \
">"/dev/null" +"\'";q="#{",1//2,"}";a=+1;q='''=.q,';q=%{\"
'echo' /*>/dev/null
echo ">/dev/null;status=0;@ {status=1};*=(" '$' ");~ $status 1&&{e='"\
"';eval catch $2 ^'&version {eval ''echo <='^ $2 ^'&version''}';exit};e='"\
"';if (eval '{let ''a^~a''} >[2] /dev/null'){e='"\
"';exec echo akanga};eval exec echo rc $2 ^ version;\" > /dev/null
: #;echo possibly pre-Bourne UNIX V1-6 shell;exit
if (! $?version) set version=csh;exec echo $version
:DOS
@CLS
@IF NOT "%DOSEMU_VERSION%"=="" ECHO DOSEMU %DOSEMU_VERSION%
@ECHO %OS% %COMSPEC%
@VER
@GOTO FIN
", unless eval 'printf "perl %vd\n",$^V;exit;'> "/dev/null";eval ': "\'';
=S"';f=false e=exec\ echo n=/dev/null v=SH_VERSION;`(eval "f() { echo :
};f")2>$n` $f||$e Bourne-like shell without function
case `(: ${_z_?1}) 2>&1` in 1) $e ash/BSD sh;;esac;t(){
eval "\${$1$v+:} $f &&exec echo ${2}sh \$$1$v";};t BA ba;t Z z;t PO po;t YA ya
case `(typeset -Z2 b=0;$e $b)2>$n` in 00) (eval ':${.}')2>$n&&eval '
$e ksh93 ${.sh.version}';t K pdk;$e ksh88;;esac;case `(eval '$e ${f#*s}$($e 1
)$((1+1))')2>$n` in e12)$e POSIX shell;;esac;$e Bourne-like shell;: }
print "ruby ",RUBY_VERSION,"\n";exit;' ''';import sys
print("python "+sys.version);z='''*/;
s="";j="JavaScript";if(typeof process=="object"){p=console.log;p(process.title
,process.version)}else{p=print;p((f="function")==(t=typeof version)?"string"==
typeof(v=version())?v:(typeof build!=f?"":s= "SpiderMonkey ")+j+" "+v:(t==
"undefined"?j+"?":version)+"\n");if(s)build()}/*
:FIN } *///'''
Я отправил начальную версию того which_interpreter сценария приблизительно 2004 в Usenet. Sven Mascheck имеет (вероятно, более полезный для Вас) сценарий, названный whatshell, который фокусируется на идентификации подобных Границе оболочек. Можно также найти объединенную версию наших двух сценариев там.
CentOS 6 имеет 2.31.3; CentOS 7 имеет версию 3.14.3 (где эта функция работает). Это не новая функция, представленная в 2007 :
Ошибка 118967 - прокрутка одной строки с помощью «Ctrl + Shift + ArrowUp / ArrowDown»
, а 2.31. 3 датируется 2010 годом (заметная задержка даже для корпоративных релизов).
Однако это не работает с CentOS 6, и, кстати, в журналах git-commit для vte и gnome-terminal , похоже, не упоминается, когда это было исправлено. Точно так же, если бы с изменением был связан отчет об ошибке, можно было бы указать, когда функция была сломана.
Функцию также невозможно настроить, как и следовало ожидать: для этой комбинации клавиш в диалоговом окне настроек нет ярлыка.
Учитывая все это, в CentOS 6 нет очевидного обходного пути, и эта функция может (все еще) работать в CentOS 7 при обновлении.
В более поздних версиях gnome-terminal Shift + Ctrl + ↑ и Shift + Ctrl + ↓ работают для прокрутки line, но у меня нет возможности проверить 2.31.