• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            shell命令執(zhí)行順序

            Posted on 2009-03-26 11:26 Prayer 閱讀(505) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell

            1.&&

             

            在一個(gè)普通的shell中,命令執(zhí)行是沒(méi)有相互依賴的,比如

            cat my1.txt

            cat my2.txt

            大家可以試試,無(wú)論上面一個(gè)命令是否正確運(yùn)行,下面的指令都會(huì)運(yùn)行。但有時(shí)候我們需要前一個(gè)指令沒(méi)有成功執(zhí)行時(shí)候,后一個(gè)指令就不要運(yùn)行,這里就牽扯到&&。

            [root@liumengli my_shell]# ls
            1.sh  2.sh  case_shell.sh  crontab.txt  first.sh  for_shell.sh  hello  hello zhangchi  my.txt  shell_example.sh  test  until_shell.sh  while_shell.sh
            [root@liumengli my_shell]# cat 1.sh && cat 2.sh
            #!/bin/sh

            echo "hello yuna"

            exit 1
            #!/bin/sh

            echo "hello difa"
            exit 0
            [root@liumengli my_shell]# cat 3.sh && cat
            cat        catchsegv 
            [root@liumengli my_shell]# cat 3.sh && cat 2.sh
            cat: 3.sh: 沒(méi)有這個(gè)目錄
            從結(jié)果中可以看到cat 3.sh沒(méi)有成功運(yùn)行,那么cat 2.sh就不會(huì)成功運(yùn)行。自己寫的shell腳本也可以用&&鏈接起來(lái)

             

            這里又牽扯到一個(gè)問(wèn)題,到底怎樣才算成功運(yùn)行了呢。像上面那樣 cat 3.sh這個(gè)是明顯失敗了。但如果我有2個(gè)腳本,如何才算前一個(gè)腳本成功運(yùn)行了呢?關(guān)鍵在于 exit,如果exit 0被執(zhí)行了就表示前一個(gè)成功運(yùn)行, exit 1就沒(méi)有成功運(yùn)行,例如

            [root@liumengli my_shell]# cat 1.sh
            #!/bin/sh

            echo "hello yuna"

            exit 1
            [root@liumengli my_shell]# cat 2.sh
            #!/bin/sh

            echo "hello difa"
            exit 0
            [root@liumengli my_shell]# ./1.sh && ./2.sh
            hello yuna
            [root@liumengli my_shell]# ./2.sh && ./1.sh
            hello difa
            hello yuna
            [root@liumengli my_shell]#
            第一個(gè)只執(zhí)行了1.sh,因?yàn)樗祷?,雖然從實(shí)際意義上看來(lái),我們 1.sh成功運(yùn)行了,但2.sh還是不會(huì)被運(yùn)行。

             

            2.||

             

            和&&正好相反,當(dāng)?shù)谝粋€(gè)指令運(yùn)行失敗時(shí)候,才運(yùn)行第2個(gè)指令(當(dāng)然也可以是腳本,和&&類似)。

             

            3.()和{}

             

            樣例

            [root@liumengli my_shell]# (./1.sh ; ./2.sh )
            hello yuna
            hello difa
            [root@liumengli my_shell]#

            這個(gè)表示這2個(gè)指令(其實(shí)是腳本)在一起運(yùn)行,且都是在當(dāng)前 shell中運(yùn)行

            如果是{}的話(語(yǔ)法一樣,中間有;號(hào),注意第一個(gè)要有空格,則指令不再當(dāng)前 shell,而在這個(gè)shell的子shell下面運(yùn)行

            国产精品9999久久久久| 久久精品国产久精国产| 国产精品久久久久久搜索| 久久精品国产91久久综合麻豆自制| 精品综合久久久久久888蜜芽| 国产精品九九久久精品女同亚洲欧美日韩综合区| 99国产精品久久| 久久久久av无码免费网| 久久国产乱子精品免费女| 久久久久人妻一区二区三区vr | 久久综合噜噜激激的五月天| 人妻精品久久久久中文字幕| 久久久久久久亚洲Av无码| 国产精品久久久久久久app| 久久亚洲私人国产精品vA| 精品久久久久久无码国产| 麻豆AV一区二区三区久久| 久久无码一区二区三区少妇| 99精品国产在热久久无毒不卡| 色天使久久综合网天天| 国产精品久久亚洲不卡动漫| 久久丫忘忧草产品| 久久精品国产亚洲5555| 狠狠色丁香婷婷综合久久来 | 日韩精品久久无码人妻中文字幕| 久久久久国产精品嫩草影院 | 狠狠久久综合伊人不卡| 国产精品99久久精品| 2020国产成人久久精品| 狠狠精品久久久无码中文字幕 | 久久久一本精品99久久精品88| 色综合久久88色综合天天| 亚洲国产一成久久精品国产成人综合 | 情人伊人久久综合亚洲| 国产精品久久久久久久久鸭| 奇米影视7777久久精品| 午夜欧美精品久久久久久久 | 亚洲综合熟女久久久30p| 久久久久久精品无码人妻| 色青青草原桃花久久综合| 精品久久久久久无码不卡|