linux全套 Shell程式設計 16

2022-07-01 11:51:12 字數 3844 閱讀 3156

目錄首先shell是什麼?

- 直譯器,啟動器

-直譯器:

直譯器有兩種解釋的方式

1) 使用者互動輸入: 就是使用者輸入一行,機器執行一行

2) 文字檔案輸入: 就是把要執行的 shell 命令寫在乙個檔案中,然後執行

source 指令碼檔案

. 指令碼檔案

如何在檔案中定義指令碼直譯器?

- #!/bin/bash

- #!/usr/bin/python

在 指令碼檔案 中第一行寫上面的語句,就是交代了該指令碼檔案使用什麼直譯器執行

否則就需要手動寫

source/. 指令碼檔案

python 指令碼檔案

注意: 在此之前需要給檔案加上可執行許可權 chmod +x 指令碼檔案

shell中也可以定義函式,下面是shell中定義函式的乙個簡單樣式

重定向

預設是標準的輸入輸出,現在自己手動指定輸入輸出的檔案

>,>>,>& 重定向輸出(1>,2>)

1>,1>>: 標準輸出重定向

2>,2>>: 錯誤輸出重定向

0>/< 完全重寫

>>/<< 追加

程式自身都有i/o

0: 標準輸入

1: 標準輸出

2: 錯誤輸出

&>,>&

將標準輸出和錯誤輸出都重定向到乙個檔案中

ls -l /god /usr >& ls.out

輸出重定向使用

輸入重定向使用

shell的變數的作用域如下

- 本地

- 區域性

- 位置

- 特殊

- 環境

本地變數

當前shell擁有(其他shell無法使用),生命週期隨shell(重啟shell後會消失 )

name=god

echo $name

區域性變數

只能local用於函式

函式()

位置變數

- $1,$2,$

傳遞的第n個引數

- $#: 位置引數個數

- $*/$@: 引數列表

特殊變數

- $$: 當前shell的pid

- $?: 上乙個命令退出的狀態

0:成功

other: 失敗

環境變數

export 變數名

source 指令碼檔案

下面是配置python環境變數的例子

cd /etc/profile.d 進入全域性環境變數的指令碼目錄

vim python3.sh 編寫環境變數的指令碼

*****python3.sh*****

export python_home=/opt/python3.7

export path=$/bin:$path

********************

source /etc/profile 更新全域性的配置指令碼

引用

單引號' : 弱引用,不會解析變數(不能進行轉義)

雙引號" : 強引用,會解析變數

注意: 引用輸出後會刪除引號

命令替換

`` 或 $()

`ls -l /`

$(ls -l /)

注意: 命令替換是可以進行擴充套件的 $($()....)

退出狀態

echo $?

- 0 成功退出

- other 退出失敗

邏輯判斷

- command1 && command2

- command1 || command2

算術表示式

(1)

a=10

b=20

let c=$a+$b

(2)

$(())

c=$((a+b))

條件表示式

test,

- [表示式]

- test 表示式

可以使用 help test 來檢視幫助

練習題

- 新增使用者

- 使用者密碼同使用者名稱

- 靜默執行指令碼

- 避免捕獲使用者介面

- 程式自定義輸出

fi經典格式: if [ 表示式 ] ; then 表示式 ; else 表示式 ; fi

if [3 -gt 8] ; then echo "ok" ; else echo "not ok" ;

- while

while 條件表示式;

do...

done

- for

步進for: for (( i=1;i<10;i++ )); do echo $i ; done

增強for: for i in "bj sxt" "sh sxt" "gz sxt"; do echo $i; done

for (());do

...done

for i in ...;do

...done

- case

練習題

- 使用者給定路徑

- 輸出檔案大小最大的檔案

- 遞迴子目錄

練習題

迴圈按行輸入檔案內容(要求多種方式)

Linux的Shell程式設計1

clear 清除,類似於dos裡的cls 在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑乙個服務是永無止境的,除非特殊情況下,不得已才會關機 翻頁 shift page on 在 linux 或 unix 作業系統中,所有的檔案和目錄都被組織成以乙個根節點開始的倒置的樹狀結構...

shell程式設計1

1 雙引號 雙引號內的內容除了 轉義符 倒引號 這三個保留特殊功能,其他的均作為普通字元。2 單引號 單引號裡的內容全部作為普通字元。3 倒引號 引號內的內容當做 shell 命令列來解釋。4 美元符 變數符,如 a表示變數 a的值。變數字元長度超過 1個時,用 括起來。5 變數 本地變數 只能在建...

Shell 程式設計 1

為什麼要進行shell程式設計 在linux系統中,雖然有各種各樣的圖形化介面工具,但是sell仍然是乙個非常靈活的工具。shell不僅僅是命令的收集,而且是一門非常棒的程式語言。您可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性 可維護性和便攜性比效率更...