Shell02

局部變量

1、普通字符串變量

變量名=value

變量名='value' ?#單引號中不進行變量解析,原樣輸出,應用不多

變量名="value" #雙引號會解析變量

例:

a1=123

a2='234'

a3="345"

echo "a1=$a1"

echo "a2=$a2"

echo "a3=${a3}" ?#${a3}和$a3等同

在AWK中,單雙引號的作用相反


local i ?#在一個函數中聲明一個局部變量


把命令作為變量

CMD=`ls`

CMD=$(ls)

echo $CMD ?#此時就會執行命令

用法:用命令作為變量進行打包 tar zcf $(uname -n).tar.gz /etc/services

H=$(uname -n)

tar zcf ${H}.tar.gz /etc/services ?#加{}的目的是為了確定變量名


Shell的特殊變量

$0 ?獲取當前腳本的文件名

$n ?獲取第n個腳本參數,如果大于9,則用${n}

$# ?腳本參數的個數


dirname $0 ?#取其路徑

basename $0 #取其文件名


2、進程狀態變量

$? ?獲取上一個指令的返回值,0為成功,非零失敗

2表示權限拒絕

1~125表示腳本命令、系統命令錯誤或參數傳遞錯誤

126找到該命令但無法執行

127沒有改命令

$$ ?獲取當前Shell的進程號(PID)


利用$?在程序當中做判斷:

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/portmap


$* 將所有命令行所有參數視為一個整體字符串,等同于"$1$2$3"

$@ ?將命令行每個參數視為單獨的字符串,等同于"$1" ?"$2" ?"$3",這是將參數傳遞給其他程序的最佳方式,因為他會保留所有內嵌在每個參數里的任何空白。

編輯test.sh,內容如下

for i in $*; do echo $i; done; echo "----"

for i in $@; do echo $i; done; echo "----"

for i; do echo $i; done; echo "----"

for i in "$*"; do echo $i; done; echo "----"

for i in "$@"; do echo $i; done; echo "----"

執行命令bash test.sh "one two" three four

輸出結果:

one

two

three

four

----

one

two

three

four

----

one two

three

four

----

one two three four

----

one two

three

four

----


3、bash內部變量

Shell本身提供的常用命令:echo ?eval ?exec ?export ?readonly ?read ?shift ?wait ?exit ?點(.)

echo ?將變量名指定的變量顯示到標準輸出

shift ?改變命令行參數的位置,即$2稱為$1,$3成為$2,...,以此類推。并且$#減1

export ?變量名=value ?聲明環境變量




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

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

相關文章

553 mail from must equal authorized user解決方法

在配置發送郵件通知,驗證其正確性時,出現"553 mail from must equal authorized user"提示的錯誤; 原因在于沒有在"系統管理(Manage Jenkins)"的"系統設置(Configure system&…

3.1 讀入一個參數

已知正方形的邊長&#xff0c;求出其面積。 輸入樣例&#xff1a; 1 2 3 4 輸出樣例&#xff1a; 1 4 9 16 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句i…

[Apple開發者帳戶幫助]八、管理檔案(2)創建臨時配置文件(iOS,tvOS,watchOS)...

創建臨時配置文件以在設備上運行您的應用程序而無需Xcode。在開始之前&#xff0c;您需要一個App ID&#xff0c;一個分發證書和多個注冊設備。 有關完整的臨時配置文件工作流程&#xff0c;請轉到Xcode幫助中的分發到已注冊設備&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

Ant Build.xml

題記&#xff1a;用 Eclipse 3 &#xff0b;Tomcat 5 做東東&#xff0c;用起來還是比較爽。但是調試時每次手動Deploy到Tomcat中&#xff0c;比較麻煩。今用Ant來完成之。 1。打開Eclipse&#xff0c;在項目的根路徑下建立builds.xml文件。 這個是Ant配置的關鍵。其內容如下&…

3.2 讀入兩個參數

計算兩個整數的差。 輸入樣例&#xff1a; 1 3 5 7 輸出樣例&#xff1a; -2 -2 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num1, num2;while (cin &g…

解決做好一個機器學習項目的3個問題

機器學習是目前人工智能最令人激動的研究方向之一。我們可能更關注機器學習算法的實現細節&#xff0c;沉浸于機器學習所需要的數學功底&#xff0c;但對于機器學習從業者來說&#xff0c;如何更好更快速的實現一個機器學習項目更值得關注。 正如吳恩達在《機器學習》這門課中所…

數據挖掘的相關知識例子

一、貝葉斯 貝葉斯定理由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 ) 發展&#xff0c;用來描述兩個條件概率之間的關系&#xff0c;比如 P(A|B) 和 P(B|A)。按照乘法法則&#xff0c;可以立刻導出&#xff1a;P(A∩B) P(A)*P(B|A)P(B)*P(A|B)。如上公式也可變形為&#xf…

3.3 1!到n!的和

求1! 2! ... n! 的結果。 輸入樣例&#xff1a; 3 6 輸出樣例 9 873 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num;while (cin >> num){int…

[幣嚴區塊鏈]以太坊(ETH)Dapp開發入門教程之寵物商店領養游戲

閱讀本文前&#xff0c;你應該對以太坊、智能合約有所了解&#xff0c;如果你還不了解&#xff0c;建議你先看以太坊是什么 除此之外&#xff0c;你最好還了解一些HTML及JavaScript知識。 本文通過實例教大家來開發去中心化應用&#xff0c;應用效果如圖: 項目背景 Pete有一個…

怎么通俗易懂地解釋貝葉斯網絡和它的應用?

作者&#xff1a;小杰鏈接&#xff1a;https://www.zhihu.com/question/28006799/answer/38996563來源&#xff1a;知乎著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。英語原文&#xff1a;http://www.norsys.com/tutorials/netica/secA/tut…

3.4 等比數列

已知q與n&#xff0c;求等比數列之和&#xff1a;1 q q^2 ... q^n 輸入樣例&#xff1a; 6 0.3 5 1.3 輸出樣例&#xff1a; 1.428 12.756 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin(…

SVM分類算法的基本理論問題

1.引言   隨著網絡技術的飛速發展和普及&#xff0c;進入了信息大爆炸的時代。信息無處不在&#xff0c;給我們的學習生活帶來了諸多便捷&#xff0c;由于堪稱海量的信息量&#xff0c;我們從中獲取有用的信息變得困難&#xff0c;解決這一難題就是要對這些大量的信息進行分…

3.5 斐波那契數

求第n項的斐波那契數。 1 1 2 3 5 8 ... 輸入樣例&#xff1a; 6 10 輸出樣例&#xff1a; 8 55 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff…

決策樹案例理解

小王是一家著名高爾夫俱樂部的經理。但是他被雇員數量問題搞得心情十分不好。某些天好像所有人都來玩高爾夫&#xff0c;以至于所有員工都忙的團團轉還是應付不過來&#xff0c;而有些天不知道什么原因卻一個人也不來&#xff0c;俱樂部為雇員數量浪費了不少資金。 小王的目的是…

3.6 最大公約數

輸入樣例&#xff1a; 6 5 18 22 輸出樣例&#xff1a; 1 6 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int m, n;while (cin >&…

劍指offer-反轉鏈表

反轉鏈表 一、題目描述 輸入一個鏈表&#xff0c;反轉鏈表后&#xff0c;輸出新鏈表的表頭。 &#xff08;看過答案和測試之后&#xff0c;題目隱藏條件是要求鏈表是不帶頭結點的&#xff09; 二、題目思路 就是用三個指針&#xff0c;head、pre、next&#xff0c;head之前都是…

3.7 最小公倍數

先各自除以最大公約數&#xff0c;然后將兩個結果和最大公約數相乘&#xff0c;即為最小公倍數。 輸入樣例&#xff1a; 6 5 18 12 輸出樣例&#xff1a; 30 36 #include<iostream> #include<fstream> using namespace std;int gcd(int, int);int main() {ifs…

聚類、K-Means、例子、細節

聚類#####今天說聚類&#xff0c;但是必須要先理解聚類和分類的區別&#xff0c;很多業務人員在日常分析時候不是很嚴謹&#xff0c;混為一談&#xff0c;其實二者有本質的區別。分類其實是從特定的數據中挖掘模式&#xff0c;作出判斷的過程。比如Gmail郵箱里有垃圾郵件分類器…

圖的廣度優先遍歷

#include <iostream> #include <vector> #include <queue> using namespace std;const int MAXV 1000; const int INF 1000000000; //下標代表點,數組元素代表連接的點 //圖的鄰接表 vector<int> Adj[MAXV]; //頂點數 int n;//DFS 如果頂點i已經被…

3.8 平均數

求若干整數的平均數&#xff0c;結果保留三位小數。 輸入樣例&#xff1a;第一個數字代表數據個數 3 6 5 18 4 1 2 3 4 輸出樣例&#xff1a; 9.667 2.500 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.t…