BASH指令碼基礎 與 或 格式

2021-09-29 16:54:51 字數 2321 閱讀 8511

這篇文章介紹一下bash下的常用的與、或同編寫格式的基礎知識。

之所以將這三個基礎知識點放到一起,是因為在實際的使用中,當需要在將若干條語句在一行執行時,除了簡順次執行之外,可能還需要一些簡單的條件控制,比如

當需要把指令碼寫成一行的時候,分號可以起到連線的作用。比如如下示例

兩個&符號,在指令碼中表示"與操作"的概念,與操作連線兩個表示式或者值,而在指令碼中使用格式如下所示:

使用格式:命令a && 命令b

命令a執行結果

命令b是否執行

執行成功

執行執行失敗

不執行我們可以通過如下使用示例進行確認

liumiaocn:scripts liumiao$ true

&&echo liumiao

liumiao

liumiaocn:scripts liumiao$

liumiaocn:scripts liumiao$ false

&&echo liumiao

liumiaocn:scripts liumiao$

兩個|符號,在指令碼中表示"或操作"的概念,或操作連線兩個表示式或者值,而在指令碼中使用格式如下所示:

使用格式:命令a || 命令b

命令a執行結果

命令b是否執行

執行成功

不執行執行失敗

執行我們可以通過如下使用示例進行確認

liumiaocn:scripts liumiao$ true

||echo liumiao

liumiaocn:scripts liumiao$ false

||echo liumiao

liumiao

liumiaocn:scripts liumiao$

**可以寫在一行

liumiaocn:scripts liumiao$ cat test_basic_1.sh |

awk''

1 #!/bin/sh

2 3 echo

"shell: [$shell]"

;hostname

;uname

;pwd

;4

5 echo

"use \\ for format"

6 7 echo

"shell: [$shell]"

; \8 hostname

; \

9 uname

; \

10 pwd

;liumiaocn:scripts liumiao$

liumiaocn:scripts liumiao$ cat test_basic_1.sh |

awk''

1 #!/bin/sh

2 3 echo

"shell: [$shell]"

&&hostname

&&uname

&&pwd

;4

5 echo

"use \\ for format"

6 7 echo

"shell: [$shell]" \

8 &&

hostname \

9 &&

uname \

10 &&

pwdliumiaocn:scripts liumiao$

liumiaocn:scripts liumiao$ sh test_basic_1.sh

shell: [/bin/bash]

liumiaocn

darwin

/users/liumiao/scripts

use \ for

format

shell: [/bin/bash]

liumiaocn

darwin

/users/liumiao/scripts

liumiaocn:scripts liumiao$

這種方式在dockerfile中使用的最為常見,因為dockerfile的run命令是典型的需要一行shell解決問題的場景。

bash指令碼基礎

shell 指令碼 一 如何建立新shell指令碼?1.建立包含bash命令的文字檔案。檔案第一行應為 bin bash 2.使檔案可執行 使用chmod x scripts 3.將檔案放置在使用者的 path的目錄中 bin 用於使用者的私有程式 usr local bin 本地開發 系統上的其他...

bash指令碼基礎

新建bash指令碼 vim hello.sh bin bash echo hello world bin bash 在 bash 中 第一行的 及後面的 bin bash 就表明該檔案是乙個 bash 程式,需要由 bin 目錄下的 bash 程式來解釋執行。bash 這個程式一般是存放在 bin ...

BASH指令碼基礎 使用set

這篇文章介紹一下在bash中使用set的方法。set可以用於設定指令碼的執行方式,指令碼啟動時也可以通過設定選項來進行設定。在指令碼啟動的設定中,常見的一些選項都可以通過set來進行設定,比如 設定選項 設定選項 快捷設定選項 設定說明 語法檢查 n 用來進行bash語法的檢查 原始碼顯示 verb...