Shell腳本里常見的一些指令和函式
[[email protected] test]# vi test.sh cd /home touch go echo haha > go ls go cd /home/mac echo haha > aa |
[[email protected] test]# sh test.sh go [[email protected] test]# ls /home go guan iei mac [[email protected] test]# cat /home/go haha [[email protected] haha |
shell script下對當前路徑的處理——$PWD, 但此值隨cd指令而變,因此建議儲存在另一個變數中
[[email protected] ntshellhttp]# vi test.sh #!/bin/bash a="$PWD" echo $a cd / ls $a |
每隔5秒(sleep 5)就做一些操作,如果用while語句的話,應該如何設定?
echo "input num:" read num echo "input is $num" while test $num -lt 10 do num=$(($num+1)) echo "new num is $num" sleep 5 done |
[[email protected] macg]# sh test.sh input num: 3 input is 3 new num is 4 new num is 5 new num is 6 new num is 7 new num is 8 new num is 9 |
Shell的 exit命令
if
exit 1
else
exit 0 指令碼退出並返回程式碼1
選單顯示,不必多個echo一行行顯示,可以一整個echo
echo "=============================================== | ** unix script test | | 1 --- num 1 | | 2 --- num 2 | | 3 --- num 3 | | 4 --- num 4 | ===============================================" |
更簡單的選單顯示---------echo函式化
banner(){ echo "=============================================== | ** unix script test | | 1 --- num 1 | | 2 --- num 2 | | 3 --- num 3 | | 4 --- num 4 | ===============================================" } 引用函式,顯示選單 banner |
輸入y,n函式
getyn() { while echo "enter y/n :" do read yn case $yn in [Yy]) return 0 ;; yes) return 0 ;; YES) return 0 ;; [Nn]) return 1 ;; no) return 1;; NO) return 1;; * ) echo "only accept Y,y,N,n,YES,yes,NO,no";; esac done } |
pause函式-----------輸入回車繼續,輸入q退出程式,其他值pause
pause() { while echo "Press <return> to proceed or type q to quit:" do read cmd case $cmd in [qQ]) exit 1;; 直接退到底,退出shell script "") break;; break跳出while語句 引號中間沒有任何字元,表示是return *) continue;; continue繼續下一迴圈 esac done |
用上面的函式構成的標準的輸入script例子
while getyn command作為條件 do banner done |
[[email protected] ~]$ ./test.sh enter y/n : d only accept Y,y,N,n,YES,yes,NO,no enter y/n : y =============================================== | ** unix script test | | 1 --- num 1 | | 2 --- num 2 | | 3 --- num 3 | | 4 --- num 4 | =============================================== enter y/n : n 輸入n,getyn函式返回1,1為假,跳出迴圈 |
相關推薦
shell腳本里常見的指令和函式
[[email protected] ~]$ ./test.shenter y/n :donly accept Y,y,N,n,YES,yes,NO,no enter y/n :y =========
Shell腳本里常見的一些指令和函式
shell script可以執行cd指令改變當前目錄[[email protected] test]# vi test.sh cd /home touch go echo haha > go ls go cd /home/mac echo haha >
關於shell腳本里的單行註釋和多行註釋方法
以“#”開頭的行就是註釋,會被直譯器忽略。 sh裡沒有多行註釋,只能每一行加一個#號。只能像這樣: #-------------------------------------------- # 這是一個自動打ipa的指令碼,基於webfrogs的ipa-build書寫:
Shell腳本:推斷用戶和用戶組是否已經存在/創建用戶和用戶組
推斷 lai test 專用 shell腳本 統一 track _id -a 通常作為一個應用程序的部署腳本,開始的第一項工作是為當前應用創建一個專用(dedicated)的用戶和用戶組。這個腳本非常easy。這裏貼一個參考樣本:#!/bin/sh user=test_
shell腳本開發環境的配置和優化實踐
shell腳本 就會 開發環境 odin sha 錯誤 aqi set ash vim路徑等配置知識的整理見表: 相關配置文件 功能描述 .viminfo 用戶使用vim的操作歷史 .vimrc 當前用戶vim的配置文件 /etc/vimrc 系統全局vi
1、shell編程(shell腳本)_理解編程和變量
Shell 編程 變量在study(Shell)專欄中,會深刻學習到shell編程 而作為一個運維人,最基本的能力,也是要學會shell腳本編程為我們的工作中提高效率!shell編程:編譯器:也叫解釋器shell給我們提供另外一個功能:方便我們的工作! 編程語言:將人類的語言轉變成機器可以理解的語言機器語言(
Shell腳本編程算術運算和條件測試
ech 符號 文件屬組 iss 如果 rand 大於等於 code 數值 算術運算 1、bash中的算術運算:help let +, -, *, /, %取模(取余), **(乘方) 實現算術運算: (1) l
學以致用二十三-----shell腳本里呼叫指令碼
當前指令碼可以呼叫其他目錄下的指令碼,並可以直接使用其他腳本里的函式。 首先檢視指令碼目錄 執行net_set.sh,同時執行colos.sh 並可直接使用 color.sh中的函式 net_set.sh 注意紅色方框和綠色方框部分 Echo_green為 color.sh的函式 程式碼
shell腳本里面通過正則匹配操作字串的問題
a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\{8\}\).*' ) echo $a linux shell 中可以將命令的結果賦值給變數,$(命令)這種格式將返回命令執行後的結果字串 上面命令執行後,變數a的值是20140
shell腳本里面相互呼叫時路徑不要用pwd獲取
shellA呼叫shellB,如果shellB 裡面需要使用路徑作為變數,去尋找其它檔案。那麼要注意,不用pwd,其返回的是系統中使用者當前所在位置的路徑,也就是shellA的路徑,這樣就錯了。應該用dirname $0,找出當前執行檔案的路勁。 場景: 指令碼 obse
shell腳本里的\r字元。
在windows上用notepadd++編輯一個shell指令碼,死活出錯,回到linux下,編輯,還是有這個\r,搜尋了下,是這樣的: ‘ 由於在shell處理了windows裡的字元檔案,導致本該輸出成兩行的字串變成了一行,而第一行行首的一些字元被第二行覆
如何在shell腳本里傳遞一個變數給awk
awk有時是個糾結的東西,一方面它很容易就佔用了單引號和雙引號,如果你要在什麼腳本里面呼叫awk,很輕鬆地就要跟引號的轉義進行搏鬥; 另一方面,$1 $2 ... $NF $NR,它也毫不客氣的佔用了$族的地盤。 怎麼在shell腳本里面傳遞一個變數給awk呢? 特別是想
linux 把cd 命令寫在bash shell腳本里不起作用
寫shell指令碼時,發現把cd命令寫在裡面無法正確跳轉,還是在當前目錄下,其實檔案已經跳轉,不過subshell退出的時候又回到當前目錄了,解決方法: source yourshellname 其中,yourshellname就是你的shell指令碼的檔名
完全備份數據和差異備份數據的shell腳本
完全備份數據和差異備份數據的shell腳本#!/bin/bash # # Description: 該腳本功能,以周為單位循環;周五實行完全備份,周六不備份,周日至周四實行差異備份; # 因工作需要,不實行壓縮打包的方式,采用cp完全備份,rsync差異備份; #
shell腳本:實現MySQL創建數據庫和刪除數據庫的腳本
shell mysqlOS操作系統:CentOS release 6.8 (Final)[[email protected]/* */]# vi createdatabase.sh #批量創建數據庫#!/bin/shPATH="/var/lib/mysql/bin:$PATH"MYUSER
shell腳本一些基本語句的用法
shell 語句一.for語句1.使用for語句批量添加用戶2.使用for語句檢查主機是否可以正常ping通二:while語句1.使用while語句按用戶名有規律添加用戶2.使用while語句編寫猜價格腳本三:case語句1.使用case語句編寫測試字符類型腳本2.使用case語句編寫服務狀態控制腳本本文出自
Linux的shell腳本random相關應用和批量修改建立練習
shell腳本random 批量創建用戶和文件一.三種取隨機數並加密的方法1.random的取數並加密取數的方法:取隨機數的方法:取隨機數的並加密的方法:加密後截取不同的位數:2.data時間取隨機數並加密3.openssl取隨機數並加密二.隨機數的應用1.批量創建以隨機數開頭的文件題目1:在/westos目
Linux的shell腳本LvsDR模式啟動腳本和模擬keepalived高可用腳本
lvsdr 啟動腳本 模擬keepalived高可用腳本一.腳本運行前模擬環境DR:server1:172.25.29.1 ipvsadm keepalivedRS:server2:172.25.29.2 arptables_jf httpdRS:server3:172.25.29.3 arptable
shell腳本介紹,shell腳本結構和執行方式,date命令的用法,shell腳本中的變量簡介
linux 操作系統 centos shell腳本 筆記內容:20.1 shell腳本介紹20.2 shell腳本結構和執行20.3 date命令用法20.4 shell腳本中的變量筆記日期:2017-11-2120.1 shell腳本介紹 Shell Script,Shell腳本與Wind
20.1 shell腳本介紹 20.2 shell腳本結構和執行 20.3 date命令用法 20.4 shell腳本中的變量
20.1 shell腳本介紹 20.2 shell腳本結構和執行 20.3 date命令用法 20.4 shell腳本中的變量- 20.1 shell腳本介紹 - 20.2 shell腳本結構和執行 - 20.3 date命令用法 - 20.4 shell腳本中的變量 # 20.1 Shell腳本介紹 -