第八章 基本脚本编译
生活随笔
收集整理的這篇文章主要介紹了
第八章 基本脚本编译
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
key?words :?執行多個命令的方法 、 創建與執行腳本、反引號`` 、數學計算 8.1 執行多個命令的方法: 1、在每個命令間用?;?隔開? [root@localhost ~]# date;who 2011年 05月 29日 星期日 08:44:32 EDT root???? :0?????????? 2011-05-29 08:32 root???? pts/0??????? 2011-05-29 08:33 (:0.0) 2、在每個命令間用?&&?隔開,表示當前一個命令執行成功才執行下一個命令,常用在自動安裝的script中 [root@localhost ~]# liting&&who bash: liting: command not found [root@localhost ~]# 3、||?: 當前一個命令執行成功時就不會往下執行,若失敗就繼續往下執行。 [root@localhost ~]# who||liting root???? :0?????????? 2011-05-29 08:32 root???? pts/0??????? 2011-05-29 08:33 (:0.0) [root@localhost ~]# [root@localhost ~]# liting||who bash: liting: command not found root???? :0?????????? 2011-05-29 08:32 root???? pts/0??????? 2011-05-29 08:33 (:0.0) [root@localhost ~]# 8.2 創建腳本 bash shell程序結構 大概由變量設置、內置命令、shell語法結構、函數及其他命令行的程序組成。 例: #!/bin/bash????????????????????????????????????????? //表示用/bin/bash編譯執行這個script文件 functionshow_name()?{?????????????????????????????????????????????????????? //定義一個函數 echo "今天是$1, 你是$2,來自$3" } name="$1"//?三個變量設定 ip="192.168.0.9" today=`date +%F` if [ $# !=1 ]; then//if判斷語法結構 echo "Usage: ./$0 [使用者名稱]" exit fi show_name "$today" "$name" "$ip"// 調用show_name函數 sleep?5// 暫停5秒 echo//輸出空行 echo "bye-bye :)" 主意事項: 1、腳本文件第一行要指定所用的shell 例如: #!/bin/bash 2、給腳本添加可執行權限 例: [root@localhost ~]# vim bb #!/bin/bash date who [root@localhost ~]# ./bb 2011年 05月 29日 星期日 08:51:30 EDT root???? :0?????????? 2011-05-29 08:32 root???? pts/0??????? 2011-05-29 08:33 (:0.0) [root@localhost ~]# 檢查script語法 [root@localhost ~]# bash -v aa [root@localhost ~]# bash -n aa [root@localhost ~]# bash -x aa 執行bash script: 1、切換到腳本所在的目錄 ./scriptname?或?bash?scriptname 2、直接輸入腳本所在絕對路徑 3、.?? 絕對路徑 8.4 反引號`` 反引號允許將shell命令的輸出直接賦值給變量 例: [root@localhost ~]# test=`date`直接把date的結果賦給test [root@localhost ~]# echo $test 2011年 07月 20日 星期三 20:56:10 EDT 每天23點48分以當天的日期命名備份一次messages日志文件 [root@localhost ~]# cat log #!/bin/bash today=`date +%y%m%d` cat /var/log/messages > messages.$today [root@localhost ~]# chmod u+x log [root@localhost ~]# crontab -e 58 23 * * *./log 8.7 數學計算 1、expr命令—限制較多 [root@localhost ~]# expr 12 + 2????????? 注意符號和數字直接要有空格 14 [root@localhost ~]# expr 12 * 2 expr: 語法錯誤 [root@localhost ~]# expr 12 \* 2?????? 遇到通配字符要先轉義 24 [root@localhost ~]# expr 12 / 2 6 [root@localhost ~]# 2、使用括號—推薦使用 例: [root@localhost ~]# cc=$[1 * 4] [root@localhost ~]# echo $cc 4 [root@localhost ~]# cat count #!/bin/bash var1=$[50 * 2] var2=45 var3=$[$var1 / $var2] echo?the final result is $var3 [root@localhost ~]# ./count the final result is 2 [root@localhost ~]# bash shell?? 只支持整數算法,對于實際運算是個較大的限制,可以用內置的bash(bc)計算器解決 bc計算器可以識別: 數字(整型和浮點型) 變量(簡單的變量和數組) 注釋(以英鎊符號開始的行或C語言的/**/對) 表達式 編程語句(例如if-then) 函數 例: 簡單的加減: [root@localhost ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 2+2 4 2.5*2 5.0 3.14159*(20+192) 666.01708 quit [root@localhost ~]# 識別變量: [root@localhost ~]# bc -q var1=10 var2=2 var1*2 20 var2=var1-9 print var2 quit [root@localhost ~]# 控制小數點: [root@localhost ~]# bc -q 3/5 0 scale=3 3/5 .600 quit 在腳本中使用bc [root@localhost ~]# cat bc #!/bin/bash var1=`echo "scale=4;3.14/5" | bc` echo the answer is $var1 [root@localhost ~]# ./bc the answer is .6280 [root@localhost ~]#?
轉載于:https://blog.51cto.com/oneliting/650928
總結
以上是生活随笔為你收集整理的第八章 基本脚本编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 创世纪 第二天
- 下一篇: 用 toto 3分钟建轻量级博客