日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

脚 本

發布時間:2024/4/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 脚 本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.創建腳本

? ?#!/bin/bash ?##腳本第一行,用/bin/bash執行

? ?echo "hello world" ? ##執行的命令

? ?

? ? * /usr/local/bin ?本地開發、系統上的其他人使用的腳本

? ? * /usr/local/sbin ?本地開發、由root使用的腳本





? ?2.腳本的執行和調試




? ?3.引用和轉義

? ? * ?在shell解析字符串時用于去除字符串中特殊字符或保留詞語的特殊含義。這會導致 按字面處理字符串,而不是展開變量或將其部分內容視作具有特殊含義。

? ?

? echo "can i have a $FRUIT"

?* ?弱引用,將字符串放置在雙引號中,保留字符串中所有字符的文字值,$、`、\和!字符除外。換言之,變量擴展和命令擴展在雙引號內仍起作用。

? echo 'can i have a $FRUIT'

?* ?強引用,將字符串放置在單引號中,保留字符串中所有字符的文字值,同時禁用所有擴展

? * ?轉義,非引用的\是轉義字符。它保留了下一個字符的文字值。





? ?4.shell變量

? ? * ?用于為稍后在腳本中使用的名稱指定值,并且僅限于shell命令行或從中聲明變量的腳本

? ?FITST=jhon ?##定義變量

? ?echo ${FIRST}_$LAST ? ##使用變量



??

? ? 5.命令替換

? ? * ?在子shell中執行指定命令并用命令輸出替換腳本中的命令替換。




? ? 6.算術運算符

? ? * ?可以在程序中實現加、減、乘、除等數學運算的運算符。

? ?- ? ? 減法

? ?+ ? ? 加法

? ?** ? ?冪運算

? ?* ? ? 乘法

? ?/ ? ? 除法

? ?% ? ? 余數

? ?i++ ? ?增量后

? ?i-- ? ?減量后

? ?+= ? ? 加等

? ?-= ? ? 減等

? ## 腳本內容表示從1到10之和

? ?運行結果

?

?

? ? 7.for循環

? ? * ?用于值列表中的相同命令的重復。

? ? ## ?(seq 2 2 8)表示從2到8隔兩個數取數

??



? ? 8.循環與計算結合

? ** 表示從1加到99的總和

? 結果




? ?9.數據庫備份示例

??

? ?#!/bin/bash

? ?for DB in $(mysql -uroot -p123 -e "show databases;" -E -N | grep -v '^*' | grep -v ? ?'schema$') ? ?//過濾要備份的數據庫

? ?do

? ?echo "Backup $DB" ? ? //顯示Backup 庫名

? ?mysqldump $DB > /dbbackup/$DB.dump ? ?//備份數據庫到dbbackup目錄

? ?done

? ?echo "OK" ? ? ?//備份完成后顯示OK

? ?for DBDUMP in /dbbackup/* ? ?//從dbbackup目錄中過濾庫名

? ?do

? ?SIZE=$(stat --printf "%s\n" $DBDUMP) ? //統計備份文件大小

? ?echo "$DBDUMP?$SIZE" ? //顯示庫名和大小

? ?done




? ?10.位置參數


? *?使用read提示用戶輸入(使用-p選項)并將其直接存儲到一個或多個變量,為交互式輸入

? ?測試

??*?使用位置參數來讀取傳遞給腳本的命令行參數或選項輸入。各種特殊變量存儲傳遞的選項編號。

? ? 指定的位置參數總數:$#

? ? 位置參數自身:$0、$1、$2、$3....

? ? 所有位置參數: $@、$*

? ?測試

?



?? 11.退出狀態

? ??* ?Linux命令完成時,將返回退出狀態。成功完成程序時,將返回0的推出狀態。這被bash當作邏輯True值。非零退出狀態通常表示發生了錯誤,并且被bash當作邏輯False值。

? ?echo $? ?##退出狀態的值被存儲在"?"中,查看退出狀態

? ?* ?退出狀態數字的含義

? ?0 ? ?##在指定的文件中找到了模式

? ?1 ? ?##在指定的文件中未找到模式

? ?>1 ? ?##一些其他錯誤(無法打開文件、錯誤的搜索表達式等)

?



? ?12.test條件判斷

? ?* ?test命令可用于評估bash腳本中的表達式。它評估其參數所指定的表達式,如果表達式為true,返回零退出狀態,如果表達式為false,則返回非零退出狀態。test具有替代語法,使用方括號"[]"將表達式括起來,這樣更易于閱讀。

? ?* ?非零或零長度字符串運算符

? ? [ -n westos];echo $? ? ##判斷不是非零字符,也可寫為test -n westos;echo $?

???[ -z westos];echo $? ? ##判斷是非零字符

??

? ?* ?字符串比較運算符


? ?= ? ?##等于字符

? != ? ?##不等于字符


? ?* ?數字比較運算符

??-eq ? ?等于

? ?-ne ? ? ? ? ? 不等于

? ?-lt? ? 小于

? ?-le ? 小于等于

? ?-gt ? ? ? ? ?大于

? ?-ge ? ? ? ? 大于大于

? ? ?

? ?* ?文件狀態運算符

? ?測試


? ? -b ? ?##塊設備文件

? ? -c ? ?##字符設備文件

? ? -e ? ?##文件是否存在

? ? -f ? ?##是否是常規文件

? ? -d ? ?##是否是目錄

? ? -S ? ?##套接字文件

? ? -L ? ?##是否是鏈接


? ? * ?二進制文件運算符

? ?

? ? -ef ? ?##兩文件是否相同

? ? -nt ? ?##第一個文件是否比第二個新

? ? -ot ? ?##第一個文件是否比第二個舊


? ? * ?邏輯運算符

? ? -a ? ?##并且,兩個條件同時滿足

? ? -o ? ?##或者,兩個條件最少滿足任意一個

? ? ! ? ?##給結果取反

? ? ?&& ? ?##結果正確執行

? ? ?|| ? ?##結果不正確執行



? ??

? ? 13.if語句

? ?* ?if命令檢查if后面的命令或列表的退出值。如果第一個命令評估為true/零,則運行then之后的命令列表,直至任一else。如果第一個命令評估為false/非零,則運行else與fi之間的命令列表(反向平寫if,標記if塊的結束)


#!/bin/bash

if

????????[ -z "$1" ] ? ? //腳本后沒跟文件

then

????????echo please give me file ? //顯示please give me file

elif

????????[ ! -e "$1" ] ? ? ? //如果腳本后跟的文件不存在 ? ?

then

????????echo "$1 is not exist" ? ?//顯示文件is not exist

else

????????for NAME in `cat $1` ? ? ? //從文件中過濾NAME

????????do

?????????????USER=`getent passwd $NAME` ? //檢測用戶是否存在

?????????????if

?????????????[ -z "$USER" ] ? ? //如果用戶不存在

?????????????then

???????????????????useradd $NAME ? ?//添加用戶

???????????????????echo wsetos | passwd --stdin $NAME ? //并設置密碼

?????????????else

???????????????????echo $NAME is exist ? ? ?//顯示用戶存在

?????????????fi

?????????done

fi ? ? ?//結束

? ? ?* ?測試




? ? 14.case語句

? ?* ?它能夠把變量的內容與多個模板進行匹配,再根據成功匹配的模板去決定應該執行哪部分代碼。esac標記結束




#!/bin/bash

case "$2" in

?????+) ? ?//第二個變量為+

??????echo num=$[ $1 + $3 ] ? //輸出$1 + $3的值

?????;;

?????-) ? ?//第二個變量為-

??????echo num=$[ $1 - $3 ] ? //輸出$1 - $3的值

??????;;

?????%) ? ?//第二個變量為%

??????echo num=$[ $1 * $3 ] ? //輸出$1 % $3的值

??????;;

??????/) ? //第二個變量為/

??????echo num=$[ $1 / $3 ] ? //輸出$1 / $3的值

??????;;

?????*) ? ? //第二個變量為其他

??????echo ??"please input right command" ? //輸出please input right command

??????;;

esac

? ?* ?測試


? ? 15.expect語句

? ?* ?實現自動應答腳本。

? ?交互輸入腳本

??

??? ## 使用expect腳本之前要yum install expect -y

? ?

? ? expect腳本

? ?#!/user/bin/expect ? ?//告訴操作系統腳本里的代碼使用那一個shell來執行。

? ?set timeout 10 ? ? ? //設置后面所有的expect命令的等待響應的超時時間,單位為秒

? ?spawn /mnt/ask.sh??//spawn是expect的內部命令,作用是給后面的shell指令加個殼,用來傳遞交互指令。

? ?expect "who" ? ?//判斷上次輸出結果里是否包含“who”的字符串,如果有則立即返回,否則等待超時時間后返回。

? ?send "haha\r" ? //執行交互動作,相當于手工輸入"westos"。

? ?expect "old" ??

? ?send "13\r"

? ?expect "happy"

? ?send "happy\r"

? ?expect eof ? ?//作用是在輸出中搜索文件結束符,如果沒有這一行,腳本會立即退出,得不到正確結果。

? ?##?interact表示執行完成后保持交互狀態,把控制權交給控制臺,這個時候就可以手工操作了。否則退出登錄。



? * ?測試



? ?16.環境變量

? ?* ?shell和腳本使用變量來存儲數據 ,有些變量可以連同它們的內容傳遞給子進程,這些變量我們稱之為環境變量,分為三種

? ?(1) 臨時設置,換了shell后不存在


? ?(2) 用戶級別設置,相對應的用戶一直生效,切換用戶后不生效

? ? ?修改~./bash_profile文件

? ? ?* 測試

? ?(3)系統級別修改,切換用戶后也會生效

? ? ?修改/etc/profile文件

? ? * 測試

? ?(4) env ?##查看環境變量



? ?17.別名

? ? * ?自定義屬于自己的系統命令。

? ?(1) 臨時生效

? ?alias xie = 'vim' ? ##臨時設置別名

? ?alias ? ? ##查看別名

? ?(2) ?永久生效

? ? 修改~./ bashrc文件

? ?* 測試

? ? source ?./ bashrc ?##文件生效

? ? (3) 刪除別名

? ? ?unalias ?xie ?


? ?18.函數

#!/bin/bash

ACTION () { ? ? //設置函數

if [ $2 $1 ];then ? //判斷條件

? ?echo "$1 is $3" ?

fi

}

? ?ACTION $1 ?"! -e" ‘not exist’ ?//使用函數

? ?ACTION $1 ?"-b" ‘not exist’

? ?ACTION $1 ?"-f" ‘not exist’

? ?ACTION $1 ?"-L" ‘not exist’

? ?ACTION $1 ?"-d" ‘not exist’

? ?ACTION $1 ?"-c" ‘not exist’

? ?ACTION $1 ?"-s" ‘not exist’











本文轉自 漂浮的天堂? 51CTO博客,原文鏈接:http://blog.51cto.com/12774215/1941448,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的脚 本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品国产鲁一鲁一区二区张丽 | 成人视屏在线观看 | 婷婷伊人五月天 | 中出视频在线观看 | 18视频在线观看男男 | 丝袜理论片在线观看 | 精品国产999久久久免费 | 青青精品视频 | 性淫bbwbbwbbw| 好吊操这里只有精品 | avtt久久| 欧美日韩国产免费 | av影院在线播放 | 欧洲国产精品 | 免费看欧美一级特黄a大片 国产免费的av | 亚洲一区 在线播放 | 99成人国产精品视频 | 黄页网站免费在线观看 | 日韩www视频 | 中文字幕免费视频 | 欧美黄色片视频 | 国产一区久久久 | 一本色道久久综合狠狠躁 | 丝袜老师让我了一夜网站 | 国产又粗又黄的视频 | 99在线精品视频免费观看20 | 美女网站视频在线观看 | 欧美裸体精品 | 亚洲欧美日韩国产 | 欧美午夜在线视频 | 四虎音影| 免费大片在线观看www | 中文字幕乱码一区 | 五十路av| 毛片aaaaa| 国产香蕉在线 | 五月婷婷丁香激情 | 性色视频| 中文字幕精品国产 | 国产刺激对白 | 欧美三日本三级少妇三99 | 一卡二卡三卡在线观看 | 一区二区三区中文字幕在线观看 | 特级黄色网 | 91亚洲精品乱码久久久久久蜜桃 | 国产精品自拍亚洲 | 冲田杏梨一区二区三区 | 欧美亚洲网站 | 欧美a视频在线观看 | 性网址| 69av网| 色乱码一区二区三区 | 亚洲乱码在线观看 | 日本黄色三级视频 | 性自由色xxxx免费视频 | 日本少妇裸体做爰 | 午夜特片网| 国产国语videosex另类 | 久久国产综合 | 91亚洲国产 | 日本三级韩国三级三级a级中文 | 麻豆久久久久久久 | 欧美精品黄 | 男女性生活视频网站 | 国家队动漫免费观看在线观看晨光 | 中国丰满人妻videoshd | 伊人网站在线观看 | 91理论片 | 日日夜夜狠 | 日韩小视频在线 | 成人国产av一区二区三区 | 亚洲蜜臀av | 91素人约啪 | 久久伊人免费视频 | 国产一级高清 | 国产亚洲精品久久久久久久 | 午夜伦情| 高清av一区二区三区 | 中文字幕一区二区三区精华液 | av在线最新 | 黄视频网站免费看 | 91在线看视频 | 高跟鞋丝袜猛烈xxxx | 护士人妻hd中文字幕 | 国产 第1190页 | 91精品国产欧美一区二区 | jzzjzzjzz亚洲成熟少妇 | 羞羞在线观看 | 欧美人与性动交α欧美精品 | 牛牛精品一区二区 | 天堂在线中文网 | 在线播放黄色网址 | 超碰夫妻| yy1111111| 成人人人人人欧美片做爰 | 色婷婷在线播放 | 久久久久久久性 | 天堂视频网 | 高h大肚孕期孕妇play |