指令碼都是在子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...