Shell 學習雜記二

2021-07-25 16:40:49 字數 1164 閱讀 5373

測試

test expression || [ expression ] 方括號與表示式之間有空格

判斷if [ expression ]; then

command

else

if [ expression ]; then

command

fifi

case "$var" in

var1) command1 ;; #;;結束邊界

var2) command2 ;;

*) command ;; #default

esac

for迴圈

for variable in (list)

list:

1 2 3 4 5

$() 替換 ``命令 `seq 1 100` $(seq 1 100) or $(seq 1 2 100) step 2

不代列表迴圈

for variable # variable in $@ 可讀性更好

類c的迴圈

for ((expression1; expression2; expression3)) #可以expression1,expression4;

doecho -n "$i" #不換行

done

無限迴圈

for ((;1;)) expression2永遠為真

while迴圈

while [[ expression ]]

例cat file.txt | while read line 通過管道

done < file.txt 重定向,差別在於管道會比重定向多兩個程序

無限迴圈

while true || while ((1)) || while :

until迴圈

until expression #條件不為真時

無限迴圈

until ((0)) || until false

select迴圈

select menu in (list)

docommand # 此處用break跳出 還可以巢狀 case/esac

done

function

function function_name()

匯入. file

source /path/myshell.sh

shell雜記 shell特別點

1 shell變數 變數名和等號之間不能有空格 your name runoob.com 唯讀變數定義 readonly you name,在定義後無法被修改 刪除變數 unset your name 獲取字串長度 echo 提取子字串 echo 2 shell陣列 定義陣列用空格隔開或者換行。僅支...

Android學習雜記(二)布局

android id id my button 指r檔案,可以不要 是指解析器 relativelayout是linearlayout的子類 viewgroup.layoutparam 確定了子檢視的高和寬 layout height,layout width android layout heig...

c 基礎學習雜記(二)

1。c 中結構體可以用new在棧裡分配結構體空間,也可以直接宣告變數就算分配空間,如 struct point point pt1 new point point pt2 這兩種方式的區別是,用new會將point中的字段初始化為0,而不用new則不會,在使用前還需要初始化變數,c 規定變數初始化以...