Linux基本操作命令(六)

2021-09-22 21:33:33 字數 2834 閱讀 3869

shell指令碼

shell指令碼的工作方式有兩種:

1.互動式:使用者輸入一條命令就立即執行。

2.批處理:由使用者事先編寫好乙個完整的shell指令碼,shell會一次性執行指令碼中諸多的命令。

編寫簡單的shell指令碼

#!/bin/bash -- shell指令碼固定開頭行,#!是用來告訴系統使用哪種shell直譯器來執行該指令碼,

pwd --要執行的命令

ls -al

使用bash example.sh命令執行指令碼,會有如下輸出資訊:

/opt/bashscript

總用量 4

drwxr-xr-x. 2 root root 24 5月 17 19:19 .

drwxr-xr-x. 3 root root 40 5月 17 18:53 ..

-rwxr--r--. 1 root root 51 5月 17 19:19 example.sh

接收使用者引數

在shell指令碼中可以設定接受外部引數的變數,

$0:對應指令碼檔案的名稱。

$#:對應總共接受了多個個引數。

$*:對應所有的引數值。

$1,$2,$3:對應每個位置的引數值。

在example.sh 輸入如下命令(必須用雙引號,單引號解析不出來):

echo "當前指令碼名稱為$0"

echo "總共有$#個引數,分別是$*"

echo "第乙個引數為$1,第二個引數為$2,第三個引數為$3"

執行命令:bash example.sh one two three

輸出資訊如下:

當前指令碼名稱為example.sh

總共有3個引數,分別是one two three

第乙個引數為one,第二個引數為two,第三個引數為three

判斷使用者的引數

系統在執行mkdir命令建立目錄的時候回判斷使用者輸入的資訊,判斷目錄是否存在,存在就會報錯,shell指令碼中的條件測試語法可以判斷表示式是否成立。成立則返回0,否則返回其他隨機數。

測試語句格式 [ 條件表示式 ]

按照測試物件來劃分,條件測試語句有四種:

1.檔案測試語句

2.邏輯測試語句

3.整數值比較語句

4.字串比較語句

檔案測試所用的引數:

-d :測試檔案是否為目錄型別

-e :測試檔案是否存在

-f :判斷是否為一般檔案

-r :測試當前使用者是否有許可權讀取

-w :測試當前使用者是否有許可權寫入

-x :測試當前使用者是否有許可權執行

執行命令[ -d /opt/bashscript ] 判斷是否為目錄型別,然後通過shell內設的$?變數顯示上乙個命令的執行後的返回值來進行判斷。

[root@linux bashscript]# [ -d /opt/bashscript ]

[root@linux bashscript]# echo $?

0執行命令[ -f /opt/bashscript ] 判斷是否為一般檔案,然後通過shell內設的$?變數顯示上乙個命令的執行後的返回值來進行判斷。

[root@linux bashscript]# [ -f /opt/bashscript ]

[root@linux bashscript]# echo $?

1邏輯語句是對測試結果進行邏輯分析,根據測試結果可以實現不同的效果,shell中邏輯運算子與「&&」表示當前面的命令執行成功後才會執行後面的命令,判斷檔案是否存在

[ -e /opt/bashscript ] && echo "存在"

[root@linux bashscript]# [ -e /opt/bashscript ] && echo "存在"

存在邏輯運算子或」||「表示前面的命令執行失敗後才會執行後面的命令,判斷使用者是否是root

[ $user = root1 ] || echo "user"

[root@linux bashscript]# [ $user = root1 ] || echo "is root"

is root

整數運算子僅是對數字的操作,不能將數字,字串與檔案等內容一起操作。而且不能直接使用 > ,<,=等這些符號來判斷。在linux中這些符號與命令符衝突。

整數比較運算子:

-eq :是否等於

-ne :是否不等於

-gt :是否大於

-lt :是否小於

-le :是否小於或等於

-ge :是否大於或等於

測試10是否大於10

[root@linux bashscript]# [ 10 -eq 10 ]

[root@linux bashscript]# echo $?

0[root@linux bashscript]# [ 10 -lt 10 ]

[root@linux bashscript]# echo $?

1字串比較語句使用者判斷測試字串是否為空值,或兩個字串是否相同。經常用來判斷某個變數是否未被定義。

字串比較運算子:

= :比較字串內容是否相同

!= :比較字串內容是否不同

-z :判讀字串內容是否為空

[root@linux bashscript]# [ -z $string ]

[root@linux bashscript]# echo $?

0[root@linux bashscript]# echo $lang

zh_cn.utf-8

[root@linux bashscript]# [ $lang != "en.us" ] && echo 'not en.us'

not en.us

Linux操作命令(六) wc grep

本次實驗將介紹 linux 命令中 wc 和 grep 命令的用法。課程使用的實驗環境為 ubuntu linux 14.04 64 位版本。實驗中會用到程式 wc 命令是乙個統計的工具,主要用來顯示檔案所包含的行 字和位元組數。wc 命令是 word count 的縮寫。1 命令格式 wc 選項 ...

(六)Linux常用操作命令

一 目錄 檔案 顯示 建立 切換 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent touch 建立空檔案 cd 切換目錄 二 拷貝 剪下 移動 刪除 cp 拷貝 m...

Linux基本操作命令

首先介紹乙個名詞 控制台 console 它就是我們通常見到的使用字元操作介面的人機介面,例如dos。我們說控制台命令,就是指通過字元介面輸入的可以作業系統的命令,例如dos命令就是控制台命令。我們現在要了解的是基於linux作業系統的基本控制台命令。有一點一定要注意,和dos命令不同的是,linu...