Shell位置變量&預(yù)定義變量的實(shí)現(xiàn)
一、位置變量:
1、位置變量語(yǔ)法:
命令 參數(shù)1 參數(shù)2 參數(shù)3.........9以后特殊定義
$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 ....
2、示例:
需求:制定腳本程序,用戶自行輸入兩門(mén)學(xué)科成績(jī)(整數(shù)),自動(dòng)算出平均分。
[root@localhost ~]# vim avg.sh #制作腳本 #!/bin/bash echo -n "平均成績(jī)是:" echo "($1+$2)/2" | bc [root@localhost ~]# chmod +x avg.sh #腳本授權(quán) [root@localhost ~]# ./avg.sh 60 70 #測(cè)試腳本 平均成績(jī)是:65
3、總結(jié):
- 1、位置變量就是$1,$2,$3,$4
- 2、位置變量預(yù)先已經(jīng)被定義過(guò)了。
- 3、用戶使用時(shí),必須攜帶參數(shù)。
- 4、位置變量不是程序設(shè)計(jì)的唯一方法。比如read也可以。
二、預(yù)定義變量:
$0 腳本名/程序名
- $* 所有的參數(shù)
- $# 參數(shù)的個(gè)數(shù)
- $? 上一個(gè)程序的返回值(0是成功,非0失?。?/li>
- $$ 程序的PID
1、示例:
[root@localhost ~]# vim sum.sh #定義腳本 echo "用戶輸入的第1個(gè)參數(shù)是:$1 " echo "用戶輸入的第2個(gè)參數(shù)是:$2 " echo "用戶輸入的第3個(gè)參數(shù)是:$3 " echo "用戶輸入的第4個(gè)參數(shù)是:$4 " echo "用戶輸入的第5個(gè)參數(shù)是:$5 " echo "用戶輸入的第6個(gè)參數(shù)是:$6 " echo "該程序名為:$0" echo "該程序攜帶的所有參數(shù)是:$*" echo "該程序的參數(shù)個(gè)數(shù)是:$#" echo "該程序的進(jìn)程號(hào)是:$$" [root@localhost ~]# ./sum.sh 11 22 33 44 55 66 77 88 99 #調(diào)用腳本 用戶輸入的第1個(gè)參數(shù)是:11 用戶輸入的第2個(gè)參數(shù)是:22 用戶輸入的第3個(gè)參數(shù)是:33 用戶輸入的第4個(gè)參數(shù)是:44 用戶輸入的第5個(gè)參數(shù)是:55 用戶輸入的第6個(gè)參數(shù)是:66 該程序名為:./sum.sh 該程序攜帶的所有參數(shù)是:11 22 33 44 55 66 77 88 99 該程序的參數(shù)個(gè)數(shù)是:9 該程序的進(jìn)程號(hào)是:111298 [root@localhost ~]# echo $? 0
2、總結(jié):
1、這兩類變量,在設(shè)計(jì)系統(tǒng)時(shí)就已經(jīng)定義好了。
2、需要使用時(shí),直接調(diào)用即可。
到此這篇關(guān)于Shell位置變量&預(yù)定義變量的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Shell位置變量&預(yù)定義變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell寫(xiě)的告警次數(shù)控制及恢復(fù)示例代碼
自己寫(xiě)的一個(gè)監(jiān)控腳本,發(fā)現(xiàn)告警短信次數(shù)未控制時(shí),垃圾短信N多。經(jīng)過(guò)思考,做了個(gè)簡(jiǎn)單的控制,同一故障只發(fā)送二次。之后不再發(fā)送。恢復(fù)后發(fā)送恢復(fù)短信2013-02-02ubuntu編譯pyav報(bào)錯(cuò)libx264?not?found解決示例
這篇文章主要為大家介紹了ubuntu編譯pyav報(bào)錯(cuò)libx264?not?found解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Shell實(shí)現(xiàn)的Oracle啟動(dòng)腳本分享
這篇文章主要介紹了Shell實(shí)現(xiàn)的Oracle啟動(dòng)腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01解決linux的redhat版上mysql字符亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決linux的redhat版上mysql字符亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06Shell實(shí)現(xiàn)程序造死循環(huán)的幾種方法示例
在linux下編程的程序猿都知道shell腳本,就算你不怎么熟悉,也應(yīng)該聽(tīng)過(guò)的吧!那在shell腳本中的死循環(huán)該怎么寫(xiě)呢?下面這篇文章就來(lái)給大家介紹了關(guān)于Shell如何實(shí)現(xiàn)讓程序造死循環(huán)的幾種方法,需要的朋友可以參考下。2017-08-08Linux全網(wǎng)最全面常用命令整理(附實(shí)例)
這篇文章主要介紹了Linux命令,是目前最全面的集合,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08