🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.comp.os.linux
Article #856

Re: 初手问一个脚本的小问题

#856
From: Jian Lee
Date: Sun, 28 Sep 2008 03:16
152 lines
8619 bytes
yunhai <yunyousihaiAT@gmail.dotcom> writes:

> On Sat, 27 Sep 2008 16:12:05 +0800, Jian Lee
> <jian.li@turbolinux.com.cn> wrote:
>
>>
>> �Ǻǣ����ÿ�������֪��Ҳ����̫ϸ��
>>
>> ������һ�� "&"���ó����ں�̨���У���exec��ȫ��һ�����
> ��IDҲ�͸����
>> ��ID��һ��ֻ�����ó��򵽺�̨���У����ǿ��Բ��صȴ���Ľ�
> ����ܵõ�
>> ��shell��ʾ��
>>
> ��ֱ����terminal��ִ��exec opera &��opera��Ϊterminal���ӽ��
> �������滻����ʲô��̣�
�滻���� terminal

exec ���÷��ܶ�ģ���ǰ�������ڼǵò�̫�壬exec��bash��һ��������
�GNU��info�

`exec'
          exec [-cl] [-a NAME] [COMMAND [ARGUMENTS]]
     If COMMAND is supplied, it replaces the shell without creating a
     new process.  If the `-l' option is supplied, the shell places a
     dash at the beginning of the zeroth arg passed to COMMAND.  This
     is what the `login' program does.  The `-c' option causes COMMAND
     to be executed with an empty environment.  If `-a' is supplied,
     the shell passes NAME as the zeroth argument to COMMAND.  If no
     COMMAND is specified, redirections may be used to affect the
     current shell environment.  If there are no redirection errors, the
     return status is zero; otherwise the return status is non-zero.


���˸����ӣ����ں��档exec���˽�̶ȿ��Է�Ӧ���Ƕ�Unix��ѧ�����̶ȣ���
�ǣ��һ����������ѧϰһ�¡�

------------------------------------
��bash��ִ��exec�����������������浱ǰ��bash��̡���ˣ������������⣺

$exec ls
[logout]

��Ȼִ������һ�������term���ˣ��ǣ�exec�����ʲô���أ�

�õġ����磬�ڲ���linux����У��Ѿ���һ��term�½����˺ܶ�����������Ѿ�������������������������õ�һ��������ȥ��ȫ�µ�bash�Ļ����Ϳ�����������
    $exec sh -l
���У�"-l"ѡ��ָ����sh(��bash)����login bash��ͬ�ij�ʼ��������˵��profile, ~/.bashrc���ļ���
�������Ǿ͵õ�һ��ȫ�µ�bash, ���Ҳ��������Ľ�̡�
    $ps ux
������
 ...
1004   37233    pts/6   sh -l
1004   37237    pts/6   ps ux

��ʱ�����ǵ�½term���ֻ����ͨ������ssh����Ļ�����ȥ�������ǾͿ����������� 

���������ˡ�

��˵��һ���������ļ�������
$cat <from >to 2>&1

�Ա�׼�ļ�����0��1��2�����ض��������Ƕ��ᡣҲ����˵����bash֮�£�����ֻ����ͬʱ��3���ļ��������Ը����ļ�ͬʱ�򿪲����в����أ�
$exec 3> foobar
$ls >&3
$exec 3>&-
$exec 3< foobar
$cat <&3
$exec 3<&-

-cour--

ͨ��exec��"x<&-", "x>&-"����ϣ����Թر��ļ���

���ֻ�Ƕ���дһЩ��ݵ��ļ��У���ôcat, echo �� "<", ">"��">>"����Ͼ͹��ˡ�Ϊʲô��Ҫ����Щ�鷳�أ�aha~~, ���ˣ�����һ��������������������ĺô������ڣ����е�ǰ�ļ���ƫ��ָ�롣

#example:
$exec 3< foo
$read bar <&3
$echo $bar
first_line_of_foo 

�������Ǿ��ܰ��ļ�"foo"�еĵ�һ�ж�������$bar���ˡ����ظ�һ���������:
$echo bar <&3
���ܶ������������~

�������д��һ���ű�script1, ��Լ���ã��Ե�3�ļ�����������ݣ�����һ���͸���"<&"����ͨ��:
$./script1
���������script1��������������?

=========================================
>
>> ִ��sh�ű��ǿ�һ��sh��̵ģ���ű��е�opera�ĸ���̾������
> sh����ˡ�
>>
>>
> ֱ����terminal��ִ��sh����õ�sh��ʾ�������ڽű��ﲻ��exec
> ��ʱ����ps -e|grep sh�鿴��̣�û����sh�����sh��̵�����ȥ
> �ˣ�
>
> ������˼����������Ƚ϶ࡣ



>
>> yunhai <yunyousihaiAT@gmail.dotcom> writes:
>>
>>> On Sat, 27 Sep 2008 13:23:02 +0800, Jian Lee
>>> <jian.li@turbolinux.com.cn> wrote:
>>>
>>>> �滻����exec����Ľ�̣��ٸ����ӣ�
>>>>
>>>> ��һ��terminal���������
>>>> # exec ls
>>>>
>>>> ����ʲô�ˣ��Dz���terminal���ڹر��ˣ�����Ĺ����ǣ�
>>>> terminal���������ls��̣�ls����滻����ĸ���̣�Ҳ����
> terminal��
>>>> �?terminal��̾Ͳ������ˡ�ls������ϣ��˳��ˣ����ڵ�Ȼ
> �ر��ˡ�
>>>>
>>>> ��һ�������ǿ��Կ������ ID����һ��terminal��
>>>> # echo $$  ; ���Կ�����ǰ��̵�ID
>>>> # bash ; �����ڿ���ID��һ�������治һ���ˣ���Ϊ����������
> һ���µĽ��
>>>> # echo $$ ; ��ס��������صļҳ�ID�ţ����Ϊ ���ס�
>>>> # exec sh
>>>> # echo $$   ; ���ﷵ�صĽ��͡��ס���һ��ġ�
>>>
>>> лл��Ľ��͡�
>>>
>>> ����һЩ�����׵ġ�
>>> ��exec���滻��̣�������exec������������&�Ļ�����ôʵ��
> Ч���Dz��Ǿ͸�
>>> ����exec�����һ����߶���ʹ���µĽ��ID��������
> terminal��ִ��exec
>>> opera &��opera &��
>>>
>>> �������������ڽű���ʹ��exec���������ֱ����terminal��ִ��
> exec���е㲻
>>> һ��ֱ��ִ��exec opera֮�󣬹ر�opera��terminal����Ҳ��
> ��֮�رգ�����
>>> ���ڽű����õĻ����ر�opera��ԭ����terminal����رգ����
> IDҲ���䡣����
>>> Ϊʲô�أ���ִ�нű���ʱ�򣬻��¿�һ��bash�𣿿����ڽű���
> ����exec����
>>> ����Ҳû�з��ֶ��һ��bash��
>>>
>
> --
> Using Opera's revolutionary e-mail client:
> http://www.opera.com/mail/
Technical Details
Message-ID: <vdwh6jty.fsf@dev3-168.dev.cn.tlan>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!newshub.sdsu.edu!newsgate.cuhk.edu.hk!news.cn99.com!not-for-mail
References: <op.uhy15abv5u2pxgyh@yunyousihai.org> <877i9283id.fsf@home.emacser.com> <op.uhy709075u2pxgyh@yunyousihai.org> <7i91dlnk.fsf@dev3-168.dev.cn.tlan> <op.uh2v82dj5u2pxgyh@yunyousihai.org> <abdukvrd.fsf@dev3-168.dev.cn.tlan> <op.uh4pv3dd5u2pxgyh@yunyousihai.org> <d4iqypm2.fsf@dev3-168.dev.cn.tlan> <op.uh4s78hd5u2pxgyh@yunyousihai.org>

Show Full Headers
Complete Article Headers
X-Google-Thread: 10b277,8e750585191b5336
X-Google-Attributes: gid10b277,domainid0,public,usenet
X-Google-Language: Chinese,GB
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!newshub.sdsu.edu!newsgate.cuhk.edu.hk!news.cn99.com!not-for-mail
From: Jian Lee <jian.li@turbolinux.com.cn>
Newsgroups: cn.comp.os.linux
Subject: Re: 初手问一个脚本的小问题
Date: Sun, 28 Sep 2008 11:16:41 +0800
Organization: Bentium Ltd. (CN99)
Lines: 152
Message-ID: <vdwh6jty.fsf@dev3-168.dev.cn.tlan>
References: <op.uhy15abv5u2pxgyh@yunyousihai.org>
 <877i9283id.fsf@home.emacser.com> <op.uhy709075u2pxgyh@yunyousihai.org>
 <7i91dlnk.fsf@dev3-168.dev.cn.tlan> <op.uh2v82dj5u2pxgyh@yunyousihai.org>
 <abdukvrd.fsf@dev3-168.dev.cn.tlan> <op.uh4pv3dd5u2pxgyh@yunyousihai.org>
 <d4iqypm2.fsf@dev3-168.dev.cn.tlan> <op.uh4s78hd5u2pxgyh@yunyousihai.org>
NNTP-Posting-Host: yy-132-18-a8.bta.net.cn
Mime-Version: 1.0
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: 8bit
X-Trace: news.cn99.com 1222571799 18845 202.108.132.18 (28 Sep 2008 03:16:39 GMT)
X-Complaints-To: usenet@news.cn99.com
NNTP-Posting-Date: Sun, 28 Sep 2008 03:16:39 +0000 (UTC)
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)
Cancel-Lock: sha1:09InmI7h1bovCgyuz4OUGADwtyE=