1. 程式人生 > >Shell| 關於;和&&以及命令換行在shell中的區別

Shell| 關於;和&&以及命令換行在shell中的區別

總結

命令A ; 命令B
說明:命令A命令B的執行結果互不影響,只是將兩條命令寫在了同一行.

命令A && 命令B
說明:命令A命令B的執行結果如果失敗,將不會執行命令B.

命令A和命令B寫在兩行
說明:在shell指令碼中命令換行,命令從上向下執行,即使命令A執行失敗,命令B也照常執行.

測試&&

[root@yveshe ~]# cd 
[root@yveshe ~]# cd /yves && pwd
-bash: cd: /yves: No such file or directory
[root@yveshe
~]#

我這裡的根目錄是沒有yves這個目錄的.所以執行cd /yves會報錯,從結果我們可以看出pwd命令是沒有被執行的.

測試;

[root@yveshe ~]# cd 
[root@yveshe ~]# cd /yves ; pwd
-bash: cd: /yves: No such file or directory
/root
[root@yveshe ~]# 

使用;連線兩條命令時,我們發現命令pwd是被執行了的.

測試命令在兩行

run.sh指令碼內容如下:

#! /bin/bash

cd /yves  #末尾是否有;號不影響下面命令的執行
pwd

執行結果:

[root@yveshe ~]# ./run.sh 
./run.sh: line 3: cd: /yves: No such file or directory
/root
[root@yveshe ~]# 

由執行結果我們知道在shell指令碼中將多條命令換行,命令是從上向下執行,當上面的命令執行錯誤時,下面的命令也會繼續執行.這一點與每行語句後面有沒有;結果是一致的,使用;的唯一目的就是講多條命令可以寫在同一行而已.