1. 程式人生 > >轉發:Linux shell的&&和||

轉發:Linux shell的&&和||

shell 在執行某個命令的時候,會返回一個返回值,該返回值儲存在 shell 變數 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時,表示執行失敗。    www.2cto.com  有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地執行一條命令之後再執行另一條命令,或者在一條命令執行失敗後再執行另一條命令等。shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其後面命令的執行。  &&(命令執行控制)  語法格式如下:      command1 && command2 [&& command3 ...]  1 命令之間使用 && 連線,實現邏輯與的功能。  2 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。  3 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。    www.2cto.com   示例 1 
[email protected]
:~$ cp ~/Desktop/1.txt ~/1.txt && rm ~/Desktop/1.txt && echo "success"  示例 1 中的命令首先從 ~/Desktop 目錄複製 1.txt 檔案到 ~ 目錄;執行成功後,使用 rm 刪除原始檔;如果刪除成功則輸出提示資訊。  ||(命令執行控制)  語法格式如下:      command1 || command2 [|| command3 ...]  1 命令之間使用 || 連線,實現邏輯或的功能。  2 只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。  3 只要有一個命令返回真(命令返回值 $? == 0),後面的命令就不會被執行。  示例 2 
[email protected]
:~$ rm ~/Desktop/1.txt || echo "fail"  在示例 2 中,如果 ~/Desktop 目錄下不存在檔案 1.txt,將輸出提示資訊。  示例 3  [email protected]:~$ rm ~/Desktop/1.txt && echo "success" || echo "fail"  在示例 3 中,如果 ~/Desktop 目錄下存在檔案 1.txt,將輸出 success 提示資訊;否則輸出 fail 提示資訊。  shell 提供了兩種方法(() 和 {})實現將幾個命令合作一起執行,代替獨立執行。這種方式並不能控制命令是否需要執行,僅是將多個單獨的命令組合在一起執行,最終命令的返回值將由最後一條命令的返回值來決定。  () (命令組合)  語法格式如下:   www.2cto.com       (command1;command2[;command3...])  1 一條命令需要獨佔一個物理行,如果需要將多條命令放在同一行,命令之間使用命令分隔符(;)分隔。執行的效果等同於多個獨立的命令單獨執行的效果。  2 () 表示在當前 shell 中將多個命令作為一個整體執行。需要注意的是,使用 () 括起來的命令在執行前面都不會切換當前工作目錄,也就是說命令組合都是在當前工作目錄下被執行的,儘管命令中有切換目錄的命令。  3 命令組合常和命令執行控制結合起來使用。  示例 4 
[email protected]
:~$ rm ~/Desktop/1.txt || (cd ~/Desktop/;ls -a;echo "fail")  在示例 4 中,如果目錄 ~/Desktop 下不存在檔案 1.txt,則執行命令組合

相關推薦

轉發Linux shell的&&||

shell 在執行某個命令的時候,會返回一個返回值,該返回值儲存在 shell 變數 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時,表示執行失敗。    www.2cto.com  有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地

從新手到系統管理員(一)理解Linux Shell基本的Shell指令碼

本文由 [茶話匯] – [Qing] 編譯自 [Avishek Kumar] 轉載請註明出處 關於GNU/Linux的架構和shell所處的位置,圖片比語言表述的更加清楚,如下圖所示。 理解Linux Shell Shell:Shell是基於命令列的直譯器,它連線使用者和作業系統,允許通過編寫指令

維大難題Linux 容器虛擬機器應該怎麼選?

馬哥Linux運維 來自:開源中國社群 編譯 連結:www.oschina.net/news/90833/linux-containers-vs-virtual-machines 原文:www.datamation.com/open-source/linux-containers-vs-vir

從新手到系統管理員(四)Linux Shell指令碼程式設計之數學(Part I)

本文由 [茶話匯] – [Qing] 編譯自 [Avishek Kumar] 轉載請註明出處 這部分主要討論數學相關的shell指令碼程式設計。 加法運算 新建一個檔案“Addition.sh”,輸入下面的內容並賦予其可執行的許可權。 [code language=”bash”] #!/bin/b

如何理解Linux Shell基本Shell指令碼語言?

 理解Linux Shell: shell:一個命令列直譯器,通過執行命令或指令碼,幫助使用者與作業系統打交道。 process:程序,使用者執行的任務是程序,但程序不只是任務。 file:檔案放在硬碟上,包含使用者所有的資料。 x-windows(又稱windows):Linux的一種模式,使螢幕

雜貨互動式shell非互動式shell、登入shell非登入shell的區別

[[email protected] ~]# man bash -i If the -i option is present, the shell is interactive. –noprofile Do not re

linux shellexpect自動互動混合編碼

因為使用到sftp,只能用互動方式輸入密碼,但是人工互動又不方便,想考慮自動,查詢資料發現expect方式可以實現一、安裝expectroot 許可權下,yum安裝命令:yum -y install expect二、#!/bin/bash pwd='123456' ls_d

linux shell linux 命令的區別?windows shell windows 命令呢?

shell翻譯成殼的意思,它是包裹在linux核心外層的,一個可通過一系列的linux命令對作業系統發出相關指令的人機介面。 shell可以通過其條件語句和迴圈語句等,把一系列linux命令結合在一起

Linux Bash Shell學習(十五變數型別整型運算

                  本文也即《Learning the bash Shell》3rd Edition的第六章Command-Line Options and Typed varilables之讀書筆記之二,但我們將不限於此。  在之前,我們涉及的變數基本上是字串,也有整數,例如便是引數個數的$

Linux Shell指令碼攻略之一】find命令檔案查詢檔案列表

find是Unix/Linux命令列工具中最棒的工具之一。該命令對於編寫shell指令碼所起到的功能不可小視,但是多數人卻午飯最大程度發揮它的功效,下面介紹find一些常見的用法。 1.基本用法:

shell學習Linux系統日誌的相關命令、檔案管理工具

日誌檔案是Linux系統維必不可少的部分,日誌檔案會隨著時間的推移變的越來越大,需要使用一種被稱為輪替的技術來限制日誌的體積,一旦超過了限制的大小,就對它的內容進行抽取,同時將日誌檔案中的舊條目儲存到歸檔檔案中,以便日後的查閱。 logrotate命令 logrotat

linuxshell顯示-bash-4.1#不顯示路徑解決方法

所屬組 再次 修改 root 顯示 lin 解決 use .bashrc 幾個可能導致的原因: 1 用戶的家目錄所屬組被改為root,解決方法使用root執行cd /home/;chown username:username username 2 用戶的家目錄被修改,這個時

Setting up a EDK II build environment on Windows and Linux搭建WindowsLinux開發環境[2.2]

set clu cto 無法安裝 urn ems water 了解 源代碼管理 Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2] 2015-07 北

解決Linux SSH Secure Shell(ssh) 超時斷開的解決方法

sshd 使用 指定 fig 客戶 art service 連接 logs 轉載:http://www.cnblogs.com/jifeng/archive/2011/06/25/2090118.html 修改/etc/ssh/sshd_config文件,找到 Client

linux shell 之終端讀寫文件數據流重定向>,<,<<,>>

運行 文件的 方式 ech 描述符 run 傳遞 實例 pan 終端實現文件中數據流的讀寫; 重定向命令列表如下: 命令說明 command > file 將輸出重定向到 file。將終端數據寫到文件file中 command < file 將輸入重定

第二天Linux上的編輯器服務器

linux一、gedit編輯器gedit是一個Linux環境下的文本編輯器,類似windows下的寫字板程序,在不需要特別復雜的編程環境下,作為基本的文本編輯器比較合適二、Sublime編輯器Sublime Test是一個代碼編輯器(Sublime Text 2是收費軟件,但可以無限期試用)Sublime T

Linux數據庫MYSQL啟用查看二進制日誌

server mail etc 文件 查看表 rom 查看 日誌 stat 在/etc/my.cnf文件中【mysqld】下加上: server-id = 1 (在整個Mysql集群中保證唯一) log-bin = binlog log-bin-index = binl

Linux Shell數值比較字符串比較及相關

是把 bsp 字符串的比較 特殊 可執行 class 二進制 運算 exp 把字符串當成整型進行比較,由於abcd等字符對不上0123當程序嘗試去轉成二進制時無法完成轉換,所以用於數值比較的運算不能用於字符串較; 但是把整型當成字符串進行比較,0123這些數值完全可以轉成A

Linux Shell文件目錄操作與實例

linux 文件 目錄 shell 本文介紹基礎的文件操作:創建,移動,編輯,刪除 文件和文件夾命令與案例:mkdir 創建目錄--創建兩個目錄tangym@ubuntu:~$ mkdir test2 test3--在test1下面創建一個新的目錄mydirtangym@ubuntu:~$ m

Linux日常管理技巧(3)Linux網絡相關防火墻

127.0.0.1 網絡 修改網卡 cal 網卡ip lis oot back col 一、Linux網絡相關 1. ifconfig 查看網卡IP ifconfig命令被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機