為了更好的將程式應用,我們往往會寫一些命令列引數,這些引數使我們不必每一次都要開啟原始**更改一些**。這對於沒有使用過程式的人員來說,會很迷惑需要一定的時間熟悉,找到需要更改的地方。為此,我們會在c++,python以及r中寫過一些命令列引數,現在我們來看看shell指令碼的寫法。
getopts是linux shell自帶的乙個函式,可以優雅的撰寫命令列引數。
getopts options variable
# getopts - shell 指令
# options - 命令列引數選項,用於命令列操作(單字母或短選項)
# variable - 將命令列引數轉化為shell指令中的變數
返回值
一些特殊的命令列引數
$0
#即命令本身,相當於c/c++中的ar**[0]
$1#第乙個引數
$2, $3
, $4..
.#第2、3、4個引數,依次類推
## 主要為簡單命令列引數使用
$# #引數的個數,不包括命令本身
$@ #引數本身的列表,不包括命令本身
$*#和$@相同,但"$*"和"$@"(加引號)並不同,
#"$*"將所有的引數解釋成乙個字串,而"$@"是乙個引數陣列
#!/bin/bash
function usage():
echo "引數列表(不包含命令.sh本身):" $@
echo "引數(字串形式):" $*
eof# 判斷是否有引數
if[ $# -eq 0 ]
then
usage
exit 1
fiwhile getopts a:b:c opt
do case $opt in
a)first=$optarg;
; b)
second=$optarg;
; c)
third=$optarg;
; \?)
usage
exit 1
esac
done
# 判斷引數是由值傳入if[
[ $ = 0 || $ = 0 ]]
then
usage
exit 1
fiecho "first option:" $first
echo "second option:" $second
echo "third option:" $third
注意
.
/test0806.sh -a 1
-b -c
first option:
1second option:
-cthird option:
# -c 選項被認為是-b的值
正確的書寫
.
/test0806.sh -a 1
-b 2
-cfirst option:
1second option:
2third option:
Linux命令列基礎 常用的命令列
符號 符號含義 使用者目錄 也稱作家目錄 根路徑,即整個系統 所在當前目錄 當前目錄的上一級目錄 提示可以輸入命令列了 回車 carriage return 執行輸入的命令列 絕對路徑 開頭的路徑就是絕對路徑,不是這種開頭的就是相對路徑。命令列命令列的英文全寫 中文含義 pwdprint worki...
如何開機進入Linux命令列
可能有時候你啟動 linux 時需要或者希望不使用 gui 圖形使用者介面 也就是沒有 x,而是選擇命令列。不管是什麼原因,幸運的是,直接啟動進入 linux 命令列非常簡單,它需要在其他核心選項之後對引導引數進行簡單的更改。此更改將系統引導到指定的執行級別。為什麼要這樣做?如果你的系統由於無效配置...
LINUX命令列如何檢視memcache執行狀態
附加 如何檢視memcache伺服器端版本 memcached h memcache的執行狀態可以方便的用stats命令顯示。首先用telnet 127.0.0.1 11211這樣的命令連線上memcache,然後直接輸入stats就可以得到當前memcache的狀態。這些狀態的說明如下 pidme...