diff shell 指定範圍 shell程式設計筆記

2021-10-12 17:08:41 字數 3282 閱讀 4257

指令碼都是在子bash中執行的

第一行都為( 只能為第一行 ) : #!/bin/bash (指定了shell指令碼直譯器的路徑)

cd /proc/$$/fd 進入bash中檢視sokect

echo -e "get / http/1.0n" >& 8 --hhtp/1.0是個短連線 , 只能請求一次

本地:

當前shell擁有

生命週期隨shell name=god

區域性:

只能local用於函式 val=100

位置:

$1,$2,$ 指令碼 函式

特殊:

$#:位置引數個數

$*:引數列表,雙引號引用為乙個字串

$@:引數列表,雙引號引用為單獨的字串

$$:當前shell的pid:接收者

$bashpid:真實

$?:上乙個命令退出狀態 (任何命令執行後 , 都返回兩個值 1,執行結果 2,執行狀態 )

0:成功

other:失敗

環境變數:env,printenv,export(父子shell下都有效)

export定義變數

匯出到子shell

fork() copy on write

o(1) 適用於函式

unset:取消變數

set:檢視shell的變數

例子 :

定義乙個函式 (子bash)

區域性變數(作用域:當前**段。)

位置變數$n

awk -f':' '' passwd

有時候$n跟著其他值得時候 , 需要用{}宣告 , 如圖

陣列

特殊變數 $#引數個數 $*引數列表 $@引數列表

bash01.s**件:

echo $1

echo $2

echo $3

echo $4

echo $# --顯示引數個數

echo $@ --顯示引數列表 ''

echo $* --顯示引數列表 ""

-----------------------------

echo $? --上乙個命令的執行結果 0為成功 !0為失敗

echo $$ --當前shell的pid :接收者(不保證是當前正確的值)

$bashpid:真實 (保證是當前正確的值)

管道 |

a=10

a=22 | echo "success"

注意 : a=22這是在子bash中進行的 , 並不會影響到外面的a

環境變數 env,printenv,export (就是子bash能訪問到父bash的值)(作用範圍比較大而已)

export 定義變數

引用 反引用 (系統會先執行 `` 的語句)

: echo "echo "我是反引用"" ~`鍵為反引用的那個鍵

: var=$(echo $(echo "我是反引用"))

表示式let 算術運算表示式let

c=$a+$b

$((算術表示式)) 注意: 不需要賦值時 , $不用寫 ((a++))

c=$(($a+$b)) 也可以 c=$((a+b))

-eq 等於 equals

-ne 不等於 no equals

-lt 小於 less-than

-le 小於等於

-gt 大於 greater than

-ge 大於等於

*[ 2 -eq 2 ] -->true (注意空格)*

我的第乙個shell指令碼 新增使用者

&& || 邏輯運算符號 , 可以用作if else 功能

echo $1 | passwd --stdin $1 -->改變密碼 ,--stdin 表示用|前面的結果作為密碼

#!/bin/bsh

#注意:第一行必須為如上語句 宣告解析器的位址

[ $# -ne 1 ] && echo "error:指令碼引數為乙個!" && exit 2 #exit值得退出 , 並返回值 2

id $1 >&/dev/null && echo "error:使用者已經存在!" && exit 3 #將輸出資訊扔進/dev/null的黑洞之中

useradd $1 || echo "新增使用者失敗,許可權不足 ?" && exit 4 #判斷是否有許可權新增使用者

echo $1 | passwd --stdin $1 >&/dev/null && echo "新增使用者成功!" && exit 0

echo "新增使用者失敗 ,未知錯誤!"

生成 的 list

pytest之指定測試範圍

本文總結如何指定pytest當次執行的覆蓋範圍。總體來說,可以指定執行單個測試目錄,單個檔案,單個測試類,單個測試類中的方法,單個函式。而這些指定僅和乙個引數有關。首先看示例程式的目錄結構 以示例說明 指定執行單個測試目錄 pytest.main test case 指定執行單個測試檔案 pytes...

作用讓UI在指定矩形範圍顯示 超過範圍透明

shader ui default cliprect color tint color 1,1,1,1 stencilcomp stencil comparison float 8 stencil stencil id float 0 stencilop stencil operation floa...

C 生成指定範圍的隨機小數

網上查怎麼生成小數的隨機數,一直查不到我想要的。c 新標準,有乙個叫隨機數引擎的東西。包含於標頭檔案 include includeusing namespace std int main 上面的 中,主程式第一行就是 引擎 生成隨機序列,第二行就是 分布 如果把 real 替換成 int,裡寫成u...