Linux 如何優雅的寫出命令列引數

2021-10-23 09:57:41 字數 1678 閱讀 9751

為了更好的將程式應用,我們往往會寫一些命令列引數,這些引數使我們不必每一次都要開啟原始**更改一些**。這對於沒有使用過程式的人員來說,會很迷惑需要一定的時間熟悉,找到需要更改的地方。為此,我們會在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...