共計 1838 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇內容主要講解“Shell 位置參數怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Shell 位置參數怎么使用”吧!
shell 編程
shell 變量的特點?
——弱類型
——默認字符串型(字符串型是不能直接進行加減乘除數值運算,因此需要進行數值運算時,需要將 shell 變量聲明為數值型,不要使用默認值)
——可以把指令寫到一個文件中,shell 對這個腳本操作就可以一次執行多個操作。但是如果一條條執行會很麻煩,shell 支持條件控制、循環嵌套特性。
說明:
指定解析器
一定要在第一行執行解析器,我們使用的是 bash,當然也可以使用 python、ruby 寫腳本。
語句即命令
我們在學會一個命令時,放在命令行中就是命令,放到腳本中就是一條語句。
腳本中命令可以直接羅列,也可以包含到函數之中,通過呼叫函數名執行:
命令對空格敏感,腳本語句對空格變態地敏感!
位置參數
腳本語言:
引用第一個 sh 時,使用 $0($ 表示位置)。$# 代表一共多少個參數。
操作:
腳本不在當前 shell 執行
我們在執行任意一個腳本程序的時候,并不是在這個 shell 執行,而是新開一個 shell,雖然我們看不到這個 shell。
操作:
注:雖然得到了腳本的目的,但是當前目錄并未改變,也就是說不是在這個 shell 中執行的操作。
其中 vim 中語句為:
如果想在當前 shell 執行語句:
注:當前工作目錄已經變了。
declare 命令
——用來聲明變量類型
格式:
注:在這里要格外注意,我們需要添加一個聲明時用“-”,而不是“+”。
舉例:
把變量聲明為數值型
注:這里我們可以明確看出,在默認情況下變量為字符型,因此 c 默認輸出為 11+22,如果想想要輸出加法運算的結果,則需要將 c 聲明為 int 類型(a、b 不需要聲明為 int,因為聲明 c 后,在進行 a + b 運算時會自動將后面進行轉化)。
可以查看變量屬性:
聲明數組變量
操作:
注:在查看數組的時候,$ 后面需要添加 {},在不加下標,直接以數組名給出時默認顯示第一個數組元素,加上 * 時,顯示全部。
聲明環境變量
注:環境變量的聲明實際上也是 declare 命令。- X 表示聲明為環境變量。如果這樣操作:
Export aa,即表示把 aa 聲明為環境變量,則在執行 bash– set 這兩個指令時只能看到 aa,不能看見 bb。Bb 只會出現在當前目錄。
聲明變量只讀屬性
操作:
注:這里不能修改和刪除。甚至我們執行撤銷屬性都不可以。在實際應用中要格外注意,如果將制度屬性的變量加到某一系統環境變量中在開機時會自啟動,這樣會出錯。我們這里設置的是臨時環境變量,系統重啟后消失。因此,只讀屬性并不是很好用,實際中盡量少用。
查看變量屬性
數值運算方式
數值運算方法 1
注:這種方法需要敲很多指令,麻煩。
方法 2:expr 或 let 數值運算工具
操作:
注:在沒有空格的時候不會進行直接加的運算,而是當做字符串運算。
方法 3:”$((運算符))”或”[運算符]”
注:推薦這種寫法”$((運算符))”
區分以下的方式:$(運算符)——它的作用是把系統命令先執行,再把命令的結果賦予變量。
運算符
注:優先級越高數值越大。實際中用到的數值運算并不多。
變量測試
簡介
只針對 shell 語言有效,比較復雜。在實際中可以用其他方式取代,格式復雜,語法簡單,了解即可。
注:在優化時用到,比如 php 寫的網頁腳本,訪問量很大,就需要優化。在實際中 shell 一般是管理員用(因為我們的目的就是辦公自動化),所以要求邏輯要清晰,而這種方式并不是很適用。
例子 1:測試 x =${y- 新值}
循環控制
腳本
但是這個腳本有局限性,就是引入另外一個文件再執行這個腳本時不起作用,也就是說這個文件只針對于某一個特定情況。需要改進:
在 tab 上方有導引號 “,如果在 vim 中輸入命令:形如’pwd’,導引號就能輸出命令的輸出。
這樣腳本就具有通用型了。
遠程執行
每次都連接服務器還是有點麻煩,我們可以在本地執行一個腳本,直接把服務器上的事辦了。
注:引號中的語句就會在服務器中執行。
確認執行:
默認是 y。
但是如果有一天我們刪除了其中一個很有用的文件,比如 jim.txt 再執行腳本時:
這時會提示是否刪除刪除這個腳本,這種提示功能非常好。我們可以選擇 no 不刪除。
用其他語言寫腳本
Bash 的語法偏機器思維。比較晦澀。
到此,相信大家對“Shell 位置參數怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!