shell一些筆記

2021-09-06 10:39:48 字數 852 閱讀 4839

1、getopts可以編寫指令碼,使控制多個命令列引數更加容易

如:檔案get.sh #! /bin/sh

name=false

age=false

odd=false

***=false

while getopts :nao:s: arg

do case $arg in

n)  

echo 'name is true';;

a)  

echo 'age is true';;

o)  

echo 'odd is' $optarg;;

s)  

echo '*** is'$optarg;;

*)  

echo 'default';;

esac

done

通過getopts來設定 n,a,o,s四個選項,這樣 sh get.sh -n 直接就輸出 name is true

因此,getopts是提供命令引數的作用,如果要為引數後面傳遞值,則在引數後面新增 「:」 ,如 na:os:

這樣在你選擇引數的時候,系統會要求你提供 value值,否則會有警告 : get.sh: option requires an argument -- o 卻是引數

其實,如果不想提示這條警告或者像使用自己的提示,則在naos前新增「:」即可

在有value值是,我們應該用$optarg來獲取我們輸入的值

並且在我們設定選項時,我們盡量使用用系統一樣的選項

這樣才能保證符合大家的正常使用習慣

shell的一些筆記

如何使用基於ssh的scp遠端複製檔案?如何利用python傳?scp home amazing felix.tar.gz root 遠端ip home dsp python傳 pytyon m httpserver 8085 wget 如何檢視本機外網ip?curl ident.me 返回ip和地...

一些shell符號

傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,此選項引數可超過9個 指令碼執行的當前程序id號 後台執行的最後乙個程序的程序id號 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 顯示最後命令的退出狀態。0表示...

一些shell技巧

1.批量刪除某些指定檔案 我們都知道用find,很快就可以給出 find name your pattern exec rm f 恩,不過還有更快更簡潔的方法,用find自帶的delete find name your pattern delete 2.列出當前目錄下的所有目錄 不遞迴 你能想到幾種...