Linux shell入門基礎(七)

来源:http://www.cnblogs.com/baiyifan/archive/2016/03/12/5270340.html
-Advertisement-
Play Games

七、bash腳本中的流程式控制制  條件判斷控制  -[]([]中的表達式是否為真)  &&(前邊的結果是true的時候執行後邊的命令)   ||(前邊的結果是false的時候執行後邊的命令)  -if  -case  迴圈控制  -while  -utile  -for  -break  -conti


七、bash腳本中的流程式控制制  條件判斷控制  -[]([]中的表達式是否為真)  &&(前邊的結果是true的時候執行後邊的命令)   ||(前邊的結果是false的時候執行後邊的命令)  -if  -case  迴圈控制  -while  -utile  -for  -break  -continue#[ abc ]#echo $?0(表示true)#[ ]#echo $?1(表示false)#["$USER" = "byf" ]('$?*'的意義是去掉特殊意義的字元,“ ”雙引號只是去掉空格的特殊意義)#echo $?1#[$USER = root ]#echo $?0#[$USER = root ] && echo hello roothello root#[-x /etc/] && echo hellohello#man bash中輸入/-w即可查找,n查找下一個#-r(讀) -w(寫) -x(可執行) -f(普通文件) -d(是否有目錄) -L (鏈接)-b(block的適配文件) -c#[-b /dev/hda ]&& echo you have a ide device#[-b /dev/sda ]&& echo you have a scsi deviceyou have a scsi device#[-f /usr/sbin/httpd] && echo please install httpt againplease install httpd again#vi b#!/bin/bashread AAAif [ $AAA = byf ]thenecho hello byfelif [ $AAA = root ] thenecho hello rootelse  echo 'get out here'fiwq#./b#bash -v ./b(看執行到那個命令)#bash -vx ./b(查看出錯命令行,進行調試,可查看每個變數的值)C和bash調試的差別C是純二進位的文件,調試需要相應的開發環境設置斷點bash中是文本的文件,可直接檢測到出錯的地方##!/bin/bashread AAAcase $(取出變數的值)AAA in byf ) echo hello byf echo nice to meet you ;;(表示結束) root ) echo hello root echo i miss you so much ;; * ) echo get out here ;;esac:wq#bash ./cbyf-eq = 相同-ne !=不同-gt >-lt <-ge >=-le <=-z 為空#!/bin/bashAAA="`pgrep httpd`"[-z "$AAA"("3186 3188 3189 3190 3191 3192 3193 3194 3195"去掉變數中的空格)]&& echo httpd 'httpd is not running!' && exitfor i in $AAA do kill -9 $i doneecho httpd is killedwq#chmod a+x d#./d#./d#!/bin/bashfor aaa in 111 222 333 /etc/profile.d/*.hdo echo $aaa (chmod a+ x $aaa批量操作)done#chmod a+x e#./e111222333/etc/profile.d/colorls.sh /etc/profile.d/glib2.sh /etc/profile.d/gnome-ssh-askpass.sh /etc/profile.d/kde.sh /etc/profile.d/lang.sh /etc/profile.d/less.sh /etc/profile.d/qcd.sh /etc/profile.d/qt.sh /etc/profile.d/udisks-bash-completion.sh /etc/profile.d/vim.sh /etc/profile.d/which2.sh#seq 1 10012……100#!/bin/bashfor aaa in `seq 1 100`do echo $aaa; sleep 1(分號不加回車,不加分號加換行) (echo -n "$aaa"  sleep 1)done##!/bin/bashiii=0while [ $iii -lt 100 ] do i=$[$iiii+1] echo -n "$iii " done##!/bin/bashiii=0until [$iii -gt 100] do iii=$[$iii+1] echo -n "$iii " doneunset iii:wq##!/bin/bashwhiletrue do read AAA if ["$AAA" = "ddd"] then break fidone
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...