linux 腳本 整數 賦值,shell基礎!!熟悉編程規范與變量

一、SHELL規范

SHELL簡單介紹

Bash(/bin/bash)是目前大多數 Linux 版本采用的默認 Shell。Bash 的全稱為 Bourne Again Shell,是最受歡迎的開源軟件項目之一。

SHELL腳本簡單的來說,就是將平時使用的各種 Linux 命令按順序保存到一個文本文件中,然后添加可執行權限,這個文件就成為一個 Shell 腳本了。

SHELL腳本有以下幾個要點:

●將要執行的命令按順序保存到一 個文本文件

●給該文件可執行權限

●可結合各種Shelll控制語句以完成更復雜的操作

執行SHELL腳本

執行腳本,要求文件本身具有 x 權限,在某些安全系統中可能無法滿足此條件。鑒于此,Linux 操作系統還提供了執行 Shell 腳本的其他方式——指定某個 Shell 來解釋腳本語句,或者通過內部命令 source(或點號“.”)來加載文件中的源代碼執行。

常用的執行shell腳本的方法:

●方法一:腳本文件路徑(絕對路徑與相對路徑)

●方法二: sh腳本文件路徑

●方法三: source 腳本文件路徑

二、SHELL腳本變量

交互式硬件設備

●標準輸入:從該設備接收用戶輸入的數據

●標準輸出:通過該設備向用戶輸出數據

●標準錯誤:通過該設備報告執行出錯信息

1.重定向操作

類型

操作符

用途

重定向輸入

<

從指定的文件讀取數據,而不是從鍵盤輸入

重定向輸出

>

將輸出結果保存到指定的文件(覆蓋原有內容)

>>

將輸出結果追加到指定的文件尾部

標準錯誤輸出

2>

將錯誤信息保存到指定的文件(覆蓋原有內容)

2>>

將錯誤信息追加到指定的文件中

混合輸出

&>

將標準輸出和標準錯誤的內容保存到同一個文件夾中

2.管道符"|"

管道(pipe)操作為不同命令之間的協同工作提供了一種機制,位于管道符號“|”左側的命令輸出的結果,將作為右側命令的輸入(處理對象),同一行命令中可以使用多個管道。在 Shell 腳本應用中,管道操作通常用來過濾所需要的關鍵信息。

3.Shell 變量的作用、類型

■變量的作用

●用來存放系統和用戶需要使用的特定參數(值)

◆變量名:使用固定的名稱,由系統預設或用戶定義

◆變量值:能夠根據用戶設置、系統環境的變化而變化

■變量的類型

●自定義變量:由用戶自己定義、修改和使用

●特殊變量:環境變量,只讀變量,位置變量,預定義變量

3.1自定義變量

■定義一個新的變量

變量名以字母或下劃線開頭,區分大小寫,建議全大寫

格式:變量名=變量值

■賦值時使用引號

●雙引號:允許通過$符號引用其他變量值

●單引號:禁止引用其他變量值,$視為普通字符

●反撇號:命令替換,提取命令執行后的輸出結果

■整數變量的運算

格式:expr 變量1 運算符 變量2 [運算符 變量3] …

常用運算符

●加法運算: +

●減法運算: -

●乘法運算: *

●除法運算: /

●求模(取余)運算: %

3.2特殊變量

特殊變量可以分為四類:

●環境變量

●只讀變量

●位置變量

●預定義變量

■環境變量

環境變量指的是出于運行需要而由 Linux 系統提前創建的一類變量,主要用于設置用戶的工作環境,包括用戶宿主目錄、命令查找路徑、用戶當前目錄、登錄終端等。環境變量的 值由 Linux 系統自動維護,會隨著用戶狀態的改變而改變。

在 Linux 系統中,環境變量的全局配置文件為/etc/profile,在此文件中定義的變量作用于所有用戶。除此之外,每個用戶還有自己的獨立配置文件(~/.bash_profile)。若要長期 變更或設置某個環境變量,應在上述文件中進行設置。

■只讀變量

Shell 變量中有一種特殊情況,一經設定,其值是不可改變的,這種變量被稱為只讀變量。在創建變量的時候可將其設置為只讀屬性,也可以將已存在的變量設置為只讀屬性,只讀變量主要用于變量值不允許被修改的情況。

■位置變量

為了在使用 Shell 腳本程序時,方便通過命令行,為程序提供操作參數,Bash 引入了位置變量的概念。當執行命令行操作時,第一個字段表示命令名或腳本程序名,其余的字符 串參數按照從左到右的順序依次賦值給位置變量。

●表示為$n, n為1~9之間的數字

■預定義變量

預定義變量是由 Bash 程序預先定義好的一類特殊變量,用戶只能使用預定義變量,而不能創建新的預定義變量,也不能直接為預定義變量賦值。預定義變量使用“$”符號和另一個符號組合表示,較常用的幾個預定義變量的含義如下。

$#:表示命令行中位置參數的個數。

$*:表示所有位置參數的內容。

$?:表示前一條命令執行后的返回狀態,返回值為 0 表示執行正確,返回任何非 0

值均表示執行出現異常。關于$?變量的使用將在下一章介紹。

$0:表示當前執行的腳本或程序的名稱。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453351.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453351.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453351.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一維數組的定義方式

一維數組的定義方式 在C語言中使用數組必須先進行定義。 一維數組的定義方式為&#xff1a;類型說明符 數組名 [常量表達式];其中&#xff0c;類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括號中的常量表達式表示數據元素的個數&#xff…

UIButton或UILabel加個下劃線

UIButton ####Objective - C LXYHyperlinksButton.h interface LXYHyperlinksButton : UIButton {UIColor *lineColor; }-(void)setColor:(UIColor*)color; 復制代碼LXYHyperlinksButton.m #import "LXYHyperlinksButton.h"implementation LXYHyperlinksButton- (id)…

android studio發布項目到github

點擊file setting ,打開對話框&#xff0c;如下&#xff0c;判斷git是否安裝成功 選擇GitHub&#xff0c;填寫github地址及密碼 發布項目&#xff1a; 轉載于:https://www.cnblogs.com/haihai88/p/8514683.html

在不使用{}時,else執行到哪里結束

正常情況下,if-else語句使用{}.執行時也執行{}里面的所有語句&#xff0c;但是當語句比較簡單時&#xff0c; 可以不使用{},而直接在if或else的后面寫要執行的語句。 但是程序只會執行到if或else語句后的第一個“;”其余的程序不在if-else的程序范圍內。

6個變態的C語言寫的Hello World

下面的六個程序片段主要完成這些事情&#xff1a; 輸出Hello, World混亂C語言的源代碼 下面的所有程序都可以在GCC下編譯通過&#xff0c;只有最后一個需要動用C的編譯器g才能編程通過。 hello1.c #define _________ }#define ________ putchar#define _______ main#define …

linux系統pcb軟件下載,開源PCB設計軟件KiCad致力于下一個大版本的發布

KiCad仍然是PCB設計和其他功能的領先開源電子設計套件。KiCad在2018年取得了成功&#xff0c;System76甚至使用了該軟件作為與Thelio臺式計算機一起設計的子板PCB的一部分&#xff0c;但展望未來&#xff0c;開發人員仍在努力開發6.0版本。KiCad 6.0發布方式將采用重新設計的GT…

CocoaPods pod install/pod update更新慢的問題

最近使用CocoaPods來添加第三方類庫&#xff0c;無論是執行pod install還是pod update都卡在了Analyzing dependencies不動原因在于當執行以上兩個命令的時候會升級CocoaPods的spec倉庫&#xff0c;加一個參數可以省略這一步&#xff0c;然后速度就會提升不少。加參數的命令如下…

js call(),apply(),對象冒充,改變變量作用域

1.apply(); function box(n1,n2){return n1n2; } function pox(n1,n2){alert(box.apply(this,[n1,n2])); //this指window下全局屬性//這里沒有返回值,沒有運算,通過冒充box里的運算來執行 } pox(10,20); //30 注:如果參數過多,冒充對象傳參的時候可以寫成arguments fu…

數組元素的地址計算問題(一維到高維)

數組元素存儲地址的計算 一維數組 設一維數組A[n]存放在n個連續的存儲單元中&#xff0c;每個數組元素占一個存儲單元&#xff08;不妨設為C個連續字節&#xff09;.如果數組元素A[0]的首地址是L&#xff0c;則A[1]的首地址是LC&#xff0c;A[2]的首地址是L2C&#xff0c;… …

侯寧:不該撈的別去撈 踏空不是浪費時間

最近&#xff0c;偶然間在網上看到了一則寓言故事&#xff1a;《駱駝與北斗星》。文章不長&#xff0c;但內容豐富&#xff0c;講得很有趣&#xff0c;很有哲理&#xff0c;也很有啟發。尤其是在股市博弈中&#xff0c;許多人、許多機構都會在現實中扮演故事里的不同角色。因為…

大躍進和循序漸進

大躍進和循序漸進本身沒有對錯&#xff0c;只有跟具體情境結合起來才會產生對錯屬性。 好的大躍進就是不學走先學跑&#xff0c;deadline是第一生產力&#xff0c;一旦學會了更高級的&#xff0c;低級的自然而然就學會了。 好比武裝革命&#xff0c;是先攻打大城市還是攻打農村…

Hibernate 學習(一)

一、Hibernate 簡介 1、Hibernate 簡介 Hibernate是一個開放源代碼的對象關系映射(ORM)框架&#xff0c;它對JDBC進行了非常輕量級的對象封裝&#xff0c;它將POJO與數據庫表建立映射關系&#xff0c;是一個全自動的orm框架&#xff0c;hibernate可以自動生成SQL語句&#xff0…

(嚴蔚敏版)數組的順序存儲表示和實現代碼

#include<stdarg.h>#include<malloc.h> /* malloc()等 */#include<stdio.h> /* EOF(^Z或F6),NULL */#include<stdlib.h> /* atoi() */#include<io.h> /* eof() */#include<math.h> /* floor(),ceil(),abs() */#include<process.h> /…

特殊權限

2.18特殊的權限set_uid [rootcentos-01 ~]# which passwd //查詢一下passwd位置// /usr/bin/passwd[rootcentos-01 ~]# ls -l /usr/bin/passwd //查詢一下passwd權限//-rwsr-xr-x. 1 root root 27832 6月 …

我的職場戰爭--一年來的開發組內戰實錄

一 戰爭準備階段 一年前&#xff0c;國內分社派我帶著幾名程序員來到日本&#xff0c;進入一個世界級大公司做項目&#xff0c;這里先期駐在了一個日本總社的社員X。沒有人想到戰爭已經臨近。 二 戰爭醞釀階段 日本人不會叫你閑著&#xff0c;頭一個月就開始了下馬威。…

linux8重啟服務代碼,linux(centos8):安裝分布式事務服務seata(seata 1.3.0/centos 8.2)

一&#xff0c;什么是seata?Seata:Simpe Extensible Autonomous Transcaction Architecture&#xff0c;是阿里中間件,開源的分布式事務解決方案。前身是阿里的Fescar官方站:http://seata.io/zh-cn/官方代碼地址:https://github.com/seata/seata官方文檔站:http://seata.io/zh…

數組與矩陣的區別

數組中的元素可以是字符等 矩陣中的只能是數 這是二者最直觀的區別。 因為矩陣是一個數學概念&#xff08;線性代數里的&#xff09;&#xff0c;數組是個計算機上的概念。 《精通MATLAB6.5版》&#xff08;張志涌編著&#xff0c;北京航空航天大學出版社&#xff09;中說&…

android自定義view(自定義數字鍵盤)

序言&#xff1a;在上周的項目中&#xff0c;需要做一個密碼鎖的功能&#xff0c;然后密碼下面還得有鍵盤&#xff0c;就類似支付寶支付的時候那樣&#xff1a; 當然了&#xff0c;我們項目的需求簡單點&#xff0c;純數字的就可以了&#xff0c;然后上周就百度了自定義鍵盤&am…

linux環境部署ltmj,Linux系統安裝與簡單配置 圖文.docx

合肥師范學院實驗報告姓名:課程名稱&#xff1a;Linux院(系&#xff1a;計算機學院 專業/年級:實於Lin^系繚公裝與苗瑕肚卅1.占克If Jf VVVork51at>un ?- If -JpMHIWortsktKia^2.?JGJiIjxiS4CLM.lt 1H. iuFI?H?*vW ?tVirtujl Machine Wisa rdGimm Oprraimv加薊aBMkonA …

矩陣的壓縮存儲

5.3 矩陣的壓縮存儲 矩陣是很多科學與工程計算問題中研究的數學對象&#xff0c;在此&#xff0c;我們討論如何存儲矩陣的元&#xff0c;從而使矩陣的各種運算能有效第進行。對于一個矩陣結構顯然用一個二維數組來表示是非常恰當的&#xff0c;但在有些情況下&#xff0c;比如常…