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...