Linux中&&和&,|和||用法及區別詳解!
在使用Linux命令時,我們往往可以一行執行多條命令,或者有條件的執行下一條命令,對於剛接觸Linux命令時,特殊符號絕對是最困擾的事情之,本篇文章將為大家詳細介紹下&&和&,|和||的用法,以下是詳細的內容:
“;”分號用法
方式:command1 ; command2
用;號隔開每個命令, 每個命令按照從左到右的順序,順序執行, 彼此之間不關心是否失敗, 所有命令都會執行。
“|”管道符用法
上一條命令的輸出,作為下一條命令引數
方式:command1 | command2
Linux所提供的管道符“|”將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推
利用一個管道
# rpm -qa|grep licq
這條命令使用一個管道符“|”建立了一個管道。管道將rpm -qa命令的輸出(包括系統中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有licq字元的RPM包來。
利用多個管道
# cat /etc/passwd | grep /bin/bash | wc -l
這條命令使用了兩個管道,利用第一個管道將cat命令(顯示passwd檔案的內容)的輸出送給grep命令,grep命令找出含有“/bin /bash”的所有行;第二個管道將grep的輸出送給wc命令,wc命令統計出輸入中的行數。這個命令的功能在於找出系統中有多少個使用者使用bash
“&”符號用法
&放在啟動引數後面表示設定此程式為後臺程式
方式:command1 &
預設情況下,程式是前臺程式,這時就把Shell給佔據了,我們無法進行其他操作,對於那些沒有互動的程式,很多時候,我們希望將其在後臺啟動,可以在啟動引數的時候加一個'&'實現這個目的。
“&&”符號用法
shell 在執行某個命令的時候,會返回一個返回值,該返回值儲存在 shell 變數 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時(我認為是非0的數,返回值在0-255間),表示執行失敗。
命令之間使用 && 連線,實現邏輯與的功能。
語法格式:command1 && command2 [&& command3 ...]
只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。
只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。
“||”符號用法
語法格式:command1 || command2 [|| command3 ...]
命令之間使用 || 連線,實現邏輯或的功能。
只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。
只要有一個命令返回真(命令返回值 $? == 0),後面的命令就不會被執行。 –直到返回真的地方停止執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2925916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CountDownLatch和CyclicBarrier區別及詳解CountDownLatch
- MyBatis中#{}和${}的區別詳解MyBatis
- exists和not exists及in和not in的用法與區別
- awk sub和gsub區別及用法
- set autotrace的用法和含意及區別
- js中!和!!的區別與用法JS
- JS中的!=、== 、!==、=== 的用法和區別JS
- JS中的!=、== 、!==、===的用法和區別。JS
- SQL中IN和EXISTS用法的區別SQL
- PHP中MySQL、MySQLi和PDO的用法和區別PHPMySql
- oracle中的exists和not exists和in用法詳解Oracle
- button 和input 的區別及在表單form中的用法ORM
- JQuery中html()和val()的用法區別jQueryHTML
- Java 中 this 和 super 的用法詳解Java
- JavaScript 中 Property 和 Attribute 的區別詳解JavaScript
- GridView 中 Bind和Eval的區別詳解View
- Python中none和null的區別詳解!PythonNoneNull
- C++中break和continue的用法和區別C++
- Golang make和new的區別及實現原理詳解Golang
- oracle中的exists 和not exists 用法詳解Oracle
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- Linq中 AsQueryable(), AsEnumerable()和ToList()的區別和用法
- cookie 和session 的區別詳解CookieSession
- Redis 和 Memcached 的區別詳解Redis
- Cookie和Session的區別詳解CookieSession
- 詳解CALayer 和 UIView的區別和聯絡UIView
- Python中threading的join和setDaemon的區別及用法[例子]Pythonthread
- 一文搞懂Session和Cookie的用法及區別SessionCookie
- linux中#和## 用法Linux
- PHP 中 bind 的用法 self 和 static 的區別PHP
- 深入Oracle的left join中on和where的區別詳解Oracle
- Java中static變數作用和用法詳解Java變數
- JRE 和 JDK 的區別詳解JDK
- cookie和session的詳解與區別CookieSession
- outline和border區別詳解
- Java NIO 和 IO 的區別詳解Java
- rowspan和colspan用法詳解
- 詳解not in與not exists的區別與用法