AWK操作字串的截取 對於awk和Bash來說,他們使用的是不同的string索引系統;bash的第一個字元從0開始記錄;awk的第一個字元從1開始記錄;#012345678 ------------Bash#123456789 -------------Awk以下是案例說明:[html] [root@Slave02 shell]# vi substring-extraction.sh #!/bin/bash String=23skidoo1 echo ${String:2:4} echo |awk '{ print substr("'"${String}"'",3,4) }' exit 0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "substring-extraction.sh" [New] 8L, 108C written [root@Slave02 shell]# sh substring-extraction.sh skid skid [root@Slave02 shell]# 使用變數的首碼來匹配前面聲明過的所有變數;如:[html] [root@Slave02 shell]# xyz23=watever [root@Slave02 shell]# xyz24=asdf [root@Slave02 shell]# echo " a=${!xyz*}" a=xyz23 xyz24 [root@Slave02 shell]# echo "a=${!xyz@}" a=xyz23 xyz24 [root@Slave02 shell]# 拋骰子遊戲;SPOTS=6 -----模數為6,範圍在0-5die1=0die2=0 ------------2個變數名稱,保證每個平面選擇的數字記錄相同 let "die1 = $RANDOM % $SPOTS +1"let "die2 = $RANDOM % $SPOTS +1" let "throw = $die1 + $die2" echo "Throw of the dice = $throw"echo exit 0 以下驗證結果:[html] Random number greater than 200 --- 25552 Throw of the dice = 5 [root@Slave02 shell]# [html] random number less than 500 --- 0 Random number greater than 200 --- 9765 Throw of the dice = 2 [root@Slave02 shell]# [html] Random number greater than 200 --- 31180 Throw of the dice = 10 [root@Slave02 shell]# [root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.246062[root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.619153[root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.619153[root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.619153[root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.619153[root@Slave02 shell]# sh random2.sh Random number between 0 and 1 = 0.201116[root@Slave02 shell]# cat random2.sh #!/bin/bash AWKSCRIPT='{ srand(); print rand() }' -srand中偽隨機的計算 echo -n "Random number between 0 and 1 = "echo | awk "$AWKSCRIPT" exit 0[root@Slave02 shell]#