Linux shell 菜鳥學習筆記

2022-01-29 19:55:01 字數 2702 閱讀 4936

20171123 linux shell 基礎學習筆記

1. shell 的開始

一般是 #!/bin/bash 通過 #! 來唯一指定使用的shell路徑

其他的 # 都表示注釋.

2. shell 的變數

定義變數直接用 variablename= value 就可以 其中變數名與等號之間沒有空格.

使用變數的時候 是 $ 的方式進行使用 大括號可以有可以沒有,但是建議有.

可以使用

for file in `ls /etc/` 的方式來迴圈取得檔名.

使用do done 的方式來進行迴圈處理.

#!/bin/bash

for file in `ls /etc`;do

echo $

done

3. 可將變數設定為 唯讀變數 readonly variablename

unset 可以刪除變數.

4. shell變成的引數部分

$1 表示第乙個引數 $# 表示引數的個數 $$ 表示當前程序的id $? 表示退出時是否有異常等.

5. shell 裡面陣列的概念:

shell 裡面陣列 用 () 來表示

arrayname=(a b c d )

注意事項: arrayname 等號 以及 括號中間不能有空格.

陣列的下標從0 開始

或者 * 可以遍歷出所有的陣列元素

可以返回陣列的元素個數.

6. shell中的運算方法.

bash 中不支援運算 需要通過awk 或者expr 等方式來進行

val=`expr 2 + 2`

echo $val

注意乘法需要增加反斜線\* 來進行表示

使用的是反引號進行表示 而不是 單引號.

7. 比較方法

$a -eq $b 這種方式進行.

-eq -ne -ge -le -gt -lt

布林運算子

! 非運算 -o 或運算 -a 與運算

邏輯運算子

&& 邏輯and || 邏輯或

檔案測試運算子

-b 是否是塊裝置

-c 是否是字元裝置

-d 是否是目錄

-f 是否是普通檔案

-r 檔案是否可讀

-w 檔案是否可寫

-x 檔案是否可執行

-s 檔案是否為空

-e 檔案是否存在

8. shell 編寫時容易出錯的地方:

if 用 來表示bool預算部分

其中 -e 什麼的需要有空格區別

if 和麵先增加 then 最後增加fi 不能缺少.

9. echo 命令.

echo 用於字串輸出

echo "" 或者不加雙引號 顯示字串

echo -e "" 內內容 進行轉義

echo '' 原樣輸出不獲取變數不進行轉義

echo `date` 顯示命令執行結果

echo > filename 將結果定位到檔案

echo >>filename 增加到檔案的最後一行

read something 將讀入的資料作為變數something的value

10. printf的部分內容.

比echo 最大的好處是能夠格式化輸出字串.

printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg

轉義字元 使用反斜線.

11. shell 中的流程控制::::::::::::::::::::::::::::::::::::::::::

1) if [ -e $filename]

then

echo # do something

elif [ ]

then

do something

else

do something

fi2) for 迴圈

for some in many

dodo something

done

3) while 循壞

while (())

dolet i++ # for example

done

4) until 循壞

util (())

dodone

跳出迴圈使用 break

繼續迴圈 使用 continue

12.shell 中的函式

function func()

或者是 func() 進行命令

可以有return語句 在執行完 function 之後通過 $? 來獲取返回值.

呼叫函式時與python

不一樣不需要增加() 記住以下.

13.命令 說明

command > file 將輸出重定向到 file。

command < file 將輸入重定向到 file。

command >> file 將輸出以追加的方式重定向到 file。

n > file 將檔案描述符為 n 的檔案重定向到 file。

n >> file 將檔案描述符為 n 的檔案以追加的方式重定向到 file。

n >& m 將輸出檔案 m 和 n 合併。

n <& m 將輸入檔案 m 和 n 合併。

<< tag 將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

14. 檔案包含

source 或者是 直接點過來.

SQL修改表結構 sqlserver 菜鳥筆記

新加表字段 alter table 表名 add欄位名 字段型別 字段型別大小 例句 alter table custom ma store addseal varchar 20 alter table custom ma store addsealdetail varchar 100 刪除表字段 ...

linux shell 指令碼攻略第3版 讀書筆記

第2章 1shell會擴充套件沒有引號或是出現在雙引號 中 的萬用字元。單引號能夠阻止shell擴充套件 txt,使得該字串能夠原封不動地傳給find命令。2find 命令 如果需要用到正規表示式使用單引號 例如 查詢 home slynux下面 所有以txt結尾的檔案並列印出來 find home...

linux shell學習筆記

shell程式 將一系列linux程式通過流程控制寫在乙個文字檔案中,由shell讀取此文字檔案並且依次執行檔案中的程式。例子 bin bash 代表shell程式的注釋 echo hello linux echo this is a shell file.shell程式中需要用變數來儲存程式中的資...