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

📄 00000004.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&nbsp;<BR>------------------------------&nbsp;<BR>&nbsp;<BR>Subject:&nbsp;How&nbsp;can&nbsp;a&nbsp;process&nbsp;detect&nbsp;if&nbsp;it's&nbsp;running&nbsp;in&nbsp;the&nbsp;background?&nbsp;<BR>Date:&nbsp;Thu&nbsp;Mar&nbsp;18&nbsp;17:16:55&nbsp;EST&nbsp;1993&nbsp;<BR>&nbsp;<BR>3.7)&nbsp;&nbsp;&nbsp;&nbsp;一个process&nbsp;要怎样侦测出自己是否在背景状态执行?&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先,您是否想知道您自己是在背景状态下执行,或者在交谈状态下执行?如果&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;您只是想藉此决定是否该在终端机上印出提示符号之类的讯息,那麽更合适的做&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;法应该是检查您的标准输入是否为终端机:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sh:&nbsp;if&nbsp;[&nbsp;-t&nbsp;0&nbsp;];&nbsp;then&nbsp;...&nbsp;fi&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:&nbsp;if(isatty(0))&nbsp;{&nbsp;...&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一般来说,您无法得知自己是否在背景状态下执行。问题的根本在於不同的shell&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与不同的&nbsp;UNIX&nbsp;版本对於「前景」与「背景」的定义可能有所不同。而且在最&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;常见的系统上,前景与背景都有较好的定义,程式甚至可以在背景与前景之间任&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;意切换!&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在没有&nbsp;job&nbsp;control&nbsp;的UNIX系统上,若要把&nbsp;process&nbsp;放入背景状态通常是把&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIGINT&nbsp;与&nbsp;SIGQUIT&nbsp;忽略掉,并且把标准输入转为&quot;/dev/null&quot;,这是由shell处&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;理的。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在具有&nbsp;job&nbsp;control&nbsp;功能的&nbsp;UNIX&nbsp;系统,若shell支援&nbsp;job&nbsp;control功能,那麽&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell只要把&nbsp;process&nbsp;group&nbsp;ID&nbsp;设成跟&nbsp;terminal&nbsp;所属的&nbsp;PGID&nbsp;不同即可把&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process&nbsp;切换至背景状态;如果要把&nbsp;process&nbsp;切回前景状态,只要把此&nbsp;process&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的&nbsp;PGID&nbsp;设成跟目前&nbsp;terminal&nbsp;所属的&nbsp;PGID&nbsp;即可。如果&nbsp;shell&nbsp;不支援&nbsp;job&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;control&nbsp;功能,则不管UNIX&nbsp;系统是否支援&nbsp;job&nbsp;control&nbsp;的功能,shell&nbsp;对&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process&nbsp;的处理动作都是一样的(也就是忽略SIGINT&nbsp;与&nbsp;SIGQUIT,并且把标准&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输入转为&quot;/dev/null&quot;)。&nbsp;<BR>&nbsp;<BR>------------------------------&nbsp;<BR>&nbsp;<BR>Subject:&nbsp;Why&nbsp;doesn't&nbsp;redirecting&nbsp;a&nbsp;loop&nbsp;work&nbsp;as&nbsp;intended?&nbsp;&nbsp;(Bourne&nbsp;shell)&nbsp;<BR>Date:&nbsp;Thu&nbsp;Mar&nbsp;18&nbsp;17:16:55&nbsp;EST&nbsp;1993&nbsp;<BR>&nbsp;<BR>3.8)&nbsp;&nbsp;&nbsp;&nbsp;为什麽在&nbsp;Bourne&nbsp;shell&nbsp;当中,对回圈的输出入转向无法达到预期的效果?&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;举个例子来说好了:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo=bar&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;read&nbsp;line&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;do&nbsp;something&nbsp;with&nbsp;$line&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo=bletch&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done&nbsp;&lt;&nbsp;/etc/passwd&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;$foo&quot;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;尽管&nbsp;&quot;foo=bletch&quot;&nbsp;已经设定了&nbsp;foo&nbsp;的值,然而在多种系统的&nbsp;Bourne&nbsp;shell&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上执行此&nbsp;script&nbsp;的时候仍会印出&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;bar&quot;。为什麽呢?因为一些&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;历史因素,在&nbsp;Bourne&nbsp;shell&nbsp;当中,一个控制结构(如一个回圈,或者一个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;if&quot;&nbsp;叙述)的重导向会造出一个新的&nbsp;subshell,所以啦,在此&nbsp;subshell&nbsp;内&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所设定的变数当然不会影响目前&nbsp;shell&nbsp;的变数。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POSIX&nbsp;1003.2&nbsp;Shell&nbsp;and&nbsp;Tools&nbsp;Interface&nbsp;的标准委员会已防止上述的问题,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也就是上述的例子在遵循P1003.2&nbsp;标准的Bourne&nbsp;shells当中会印出&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;bletch&quot;。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在一些较古老的&nbsp;(以及遵循&nbsp;P1003.2&nbsp;标准的)&nbsp;Bourne&nbsp;shell&nbsp;当中,您可以使&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用以下技巧来避免重转向的问题:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo=bar&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;make&nbsp;file&nbsp;descriptor&nbsp;9&nbsp;a&nbsp;duplicate&nbsp;of&nbsp;file&nbsp;descriptor&nbsp;0&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;stdin);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;then&nbsp;connect&nbsp;stdin&nbsp;to&nbsp;/etc/passwd;&nbsp;the&nbsp;original&nbsp;stdin&nbsp;is&nbsp;now&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;`remembered'&nbsp;in&nbsp;file&nbsp;descriptor&nbsp;9;&nbsp;see&nbsp;dup(2)&nbsp;and&nbsp;sh(1)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;9&lt;&amp;0&nbsp;&lt;&nbsp;/etc/passwd&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;read&nbsp;line&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;do&nbsp;something&nbsp;with&nbsp;$line&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo=bletch&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;make&nbsp;stdin&nbsp;a&nbsp;duplicate&nbsp;of&nbsp;file&nbsp;descriptor&nbsp;9,&nbsp;i.e.&nbsp;reconnect&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;it&nbsp;to&nbsp;the&nbsp;original&nbsp;stdin;&nbsp;then&nbsp;close&nbsp;file&nbsp;descriptor&nbsp;9&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;0&lt;&amp;9&nbsp;9&lt;&amp;-&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;$foo&quot;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这样子不管在哪种&nbsp;Bourne&nbsp;shell&nbsp;应该都会印出&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;bletch&quot;。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来,看看以下这个例子:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo=bar&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;bletch&nbsp;|&nbsp;read&nbsp;foo&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;$foo&quot;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个例子在许多&nbsp;Bourne&nbsp;shell&nbsp;内都会印出&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;bar&quot;,有些则会&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;印出&nbsp;&quot;foo&nbsp;is&nbsp;now:&nbsp;bletch&quot;。为什麽呢?一般说来,一个&nbsp;pipeline&nbsp;里面&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的每一个部份都是在一个&nbsp;subshell&nbsp;中执行。但是有些系统的里&nbsp;pipeline&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的最後一个如果是如&nbsp;&quot;read&quot;&nbsp;这类的内建指令,并不会另外造出一个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subshell。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POSIX&nbsp;1003.2&nbsp;对这两种作法并没有硬性规定要用哪一种。所以一个&nbsp;portable&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的&nbsp;shell&nbsp;script&nbsp;不应该依赖这两种作法其中的一种。&nbsp;<BR>&nbsp;<BR>------------------------------&nbsp;<BR>&nbsp;<BR>Subject:&nbsp;How&nbsp;do&nbsp;I&nbsp;run&nbsp;...&nbsp;interactive&nbsp;programs&nbsp;from&nbsp;a&nbsp;shell&nbsp;script&nbsp;...&nbsp;?&nbsp;<BR>Date:&nbsp;Thu&nbsp;Mar&nbsp;18&nbsp;17:16:55&nbsp;EST&nbsp;1993&nbsp;<BR>&nbsp;<BR>3.9)&nbsp;&nbsp;我要怎麽在一个&nbsp;shell&nbsp;script&nbsp;中或在背景执行&nbsp;'ftp'、'telnet'、'tip'&nbsp;等&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interactive&nbsp;的程式呢?&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这些程式需要一个&nbsp;terminal&nbsp;interface。这是&nbsp;shell&nbsp;所无法提供的。所以这些&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无法在&nbsp;shell&nbsp;script&nbsp;里自动执行这些程式。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有一个就做&nbsp;'expect'&nbsp;的程式,可以用来做这件事,因为它提供了&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;programmable&nbsp;terminal&nbsp;interface。底下的例子是用&nbsp;'expect'&nbsp;来帮你&nbsp;<BR>login:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;username&nbsp;is&nbsp;passed&nbsp;as&nbsp;1st&nbsp;arg,&nbsp;password&nbsp;as&nbsp;2nd&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;password&nbsp;[index&nbsp;$argv&nbsp;2]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spawn&nbsp;passwd&nbsp;[index&nbsp;$argv&nbsp;1]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expect&nbsp;&quot;*password:&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send&nbsp;&quot;$password\r&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expect&nbsp;&quot;*password:&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send&nbsp;&quot;$password\r&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expect&nbsp;eof&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expect&nbsp;为&nbsp;telnet,&nbsp;rlogin,debugger&nbsp;和一些没有内建&nbsp;command&nbsp;language&nbsp;的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程式提供了一个近乎自动化的方法。Expect&nbsp;里面的有一用以在玩&nbsp;rogue&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(一个&nbsp;Unix&nbsp;中的古老游戏)时取得较佳初始情况,然後将控制权还回给使用者&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的例子。用这个&nbsp;script&nbsp;你就能得到『成功的一半』。&nbsp;<BR>&nbsp;<BR>

⌨️ 快捷键说明

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