第一章 Shell程式設計規範與變數

2021-10-10 01:31:40 字數 1836 閱讀 5077

1第一章:shell程式設計規範與變數

shell指令碼

指令碼編寫規範:

#!/bin/bash //宣告指令碼使用的直譯器名稱

#開發人額遠

#生產日期 //#開頭的表示注釋資訊,可以和命令語句配合使用,用於註明命令語句

ls /root

echo 123 //命令語句,指令碼正真會實行的內容

執行方法:

注意指令碼執行之前,需要增加可執行許可權chomd +x

1、以絕對路徑執行指令碼 /

2、以相對路徑執行指令碼 ./

3、bash 或者sh

4、source 或者 點空格/

重定向操作:

1、重定向輸入:可以從某乙個檔案中提取檔案內容作為引數,交給前面的命令進行處理

符號:<

示例:crontab < 1.txt

2、重定向輸出:可以將命令的執行結果,寫入到某乙個檔案當中,分為重定向正確輸出和錯誤輸出

符號:

//正確覆蓋
//正確追加

2> //錯誤覆蓋

2>> //錯誤追加

3、重定向混合輸出:可以將命令的執行結果,無論對錯統一輸出到乙個檔案中

符號:&>

注意:命令的執行結果在輸出時分為兩個通道進行輸出,1號通道只提取正確回顯內容進行輸出,2號通道只提取錯誤回顯內容進行輸出,如果希望2號通道的錯誤內容,走一號通道輸出的話,可以使用2>&1,表示2號通道內容周1通道輸出,反過來就是1>&2,1號通道的內容走2號通道進行輸出

變數1、自定義變數

可以有使用者自己定義設定、修改

如x=123

其中x為變數的名稱,123為變數的值

注意:變數名只能以大小寫字母或者下劃線開頭

2、環境變數

由系統啟動時,自動配置的變數資訊

其中重要的環境變數:

path:用於指定系統命令存放的目錄名稱

3、位置變數

可以用於將指令碼執行時,後面跟的額外引數傳遞到指令碼內

如:$1 //表示第乙個位置變數

$2 //表示第二個位置變數

以此類推可以到910以後

的位置變

量表示需

要加上大

括號如:

9 10以後的位置變數表示需要加上大括號 如:

910以後的

位置變數

表示需要

加上大括

號如: //表示第十個位置變數

4、預定義變數

$*:會儲存執行指令碼時的所有引數,並且把它們看做乙個整體

$@:會儲存執行指令碼時的所有引數,但是會把它們看做單獨的個體

$0:儲存執行指令碼時的命令

? :保

存了上一

個命令執

行的狀態

碼(可以

理解為命

令執行的

正確與否

),如果

?:儲存了上

乙個命令

執行的狀

態碼(可

以理解為

命令執行

的正確與

否),如

果5、互動式定義變數

命令:read

選項:-p //新增一段注釋資訊

格式:read -p

可以實現指令碼執行時互動式變數賦值

如:變數作用環境:

如果在當前shell環境中定義的變數,是不能應用在此環境中執行的指令碼當中

通過export命令可以對變數進行輸出,輸出後的變數就可以在後續的新的shell中使用

6、變數計算

見書p12

第一章 shell程式設計

shell的變數分為兩種環境變數和本地變數 檢視環境變數 env 列印環境變數 printenv 本地變數 新建本地變數 diner eqewqeqe 注意 新建本地變數是,等行前後不能加空格,要不然會出錯。檢視本地變數 set grep diner 本地變數匯入到環境變數 export diner...

第一章 Shell程式設計基礎

第一章 shell程式設計基礎 1 shell概述 shell是作業系統的外殼,是使用者使用作業系統的命令介面 shell接受使用者以命令列方式輸入的命令,也能解釋執行由shell命令編寫的shell程式 2 shell基礎知識 1 區分大小寫 變數var和var是不同的變數 2 注釋 在指令碼的第...

程式設計珠璣第一章

原文中的問題 如何在1mb的空間裡面對一千萬個整數進行排序?並且每個數都小於1千萬。實際上這個需要1.25mb的記憶體空間。1mb總共有838,8608。所以估計也可以在1mb左右的空間裡面進行排序了。include include define bitsperword 32 define shif...