[linux] shell腳本編程-xunsearch安裝腳本學習

来源:http://www.cnblogs.com/taoshihan/archive/2017/12/18/8052202.html
-Advertisement-
Play Games

安裝腳本setup.sh if ! test -d ./packages ; then 1.shell腳本編程中的if判斷配合test命令,判斷目錄是否存在 2.if判斷格式如,寫成一行 ,if test 條件;then 動作;else 動作;fi 3.判斷條件相等用-eq 或者 =,不相等 -ne ...


安裝腳本setup.sh

#!/bin/sh
# FULL fast install/upgrade script
# See help message via `--help'
# $Id$

# self check
if ! test -d ./packages ; then
  echo "ERROR: you should run the script under its directory"
  echo "錯誤:您只能在腳本所在目錄運行它"
  exit -1
fi

# get default prefix
if test -f $HOME/.xs_installed ; then
  def_prefix=`cat $HOME/.xs_installed`
elif test "$HOME" = "/" || test "$HOME" = "/root" ; then
  def_prefix=/usr/local/xunsearch
else
  def_prefix=$HOME/xunsearch
fi

if ! test -d ./packages ; then

1.shell腳本編程中的if判斷配合test命令,判斷目錄是否存在

2.if判斷格式如,寫成一行 ,if test 條件;then 動作;else 動作;fi

3.判斷條件相等用-eq 或者 =,不相等 -ne

4.if test -d $HOME ;then echo "$HOME is dir";else echo "$HOME is not dir";fi

 

$HOME

1.家目錄的環境變數

 

i=0
while [ $i -lt $# ] ; do
  i=`expr $i + 1`
  eval arg=\$$i
  opt=`echo $arg | cut -d= -f1`
  val=`echo $arg | cut -d= -f2`
  case $opt in
        "--prefix")
          set_prefix="$val"
        ;;
        "--no-clean")
          set_no_clean=yes
        ;;
        # just for back compatibility
        "--clean")
          do_clean
          exit
        ;;
        "--force")
          if test "$val" != "no" ; then
        set_force=yes
      fi
        ;;
        "--enable-debug"|"--enable-memory-cache")
          xs_add_option="$xs_add_option $arg"
        ;;
        "--jobs")
          mk_add_option="$mk_add_option -j$val"
        ;;
        "--help")
      show_usage
      exit
        ;;
        *)
          echo "ERROR: unknown option '$arg'" >&2
          echo "" >&2
          show_usage
          exit -1
        ;;
  esac
done

 

while [ $i -lt $# ] ; do

1.while迴圈,當$i小與$#時,執行

2.while迴圈舉例,註意空格

b=0;while [ $b -lt 5 ]; do b=`expr $b + 1`;echo $b; done

 

i=0

while [ $i -lt $# ] ; do

i=`expr $i + 1`

1.while迴圈 i=0;while [ $i -lt 5 ];do i=`expr $i + 1 `;echo $i;done

2.特殊變數$#是傳遞的參數個數

3.命令替換 ``

4.數學表達式工具 expr, echo `expr 1 + 1`

 

eval arg=\$$i

1.eval 把字元串變成變數

2.特殊變數 $1 $2,傳遞的參數

 

while test -z ""; do

1.test -z 判斷字元串空,則為真 if test -z "";then echo 1;fi

2.test -n 判斷字元串存在,則為真 if test -n "sss";then echo 1;fi 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 為什麼要寫Java跟.NET對比? .NET出生之後就帶著Java的影子。從模仿到創新,.NET平臺也越來越成熟。他們不同的支持者也經常因為孰弱孰強的問題爭論不休。但是本文並不是為了一分高下。而是針對Java平臺跟.NET平臺做一些對比。主要圍繞項目構建、Web框架、項目部署展開討論。相信 ...
  • .NET Core 快速學習、入門系列教程。這個入門系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows、Linux(CentOS、Ubuntu)基礎開發環境的搭建、第一個.NET Core App,以及開發工具的使用、調試技巧,調試快捷鍵整理等等。更多交流可以加入.NET技術交流 ...
  • 一、前言 為什麼要調試代碼?通過調試可以讓我們瞭解代碼運行過程中的代碼執行信息,比如變數的值等等。通常調試代碼是為了方便我們發現代碼中的bug。ken.io覺得熟練代碼調試技巧是成為合格程式員的基本要求。 本篇開發環境1、操作系統: Windows 10 X642、SDK: .NET Core 2. ...
  • 一、前言 為什麼選擇VS Code?VS Code 是一款跨平臺的代碼編輯器,想想他的哥哥VS,並是微軟出品的宇宙第一IDE,那作為VS的弟弟,VS Code 也不會差,畢竟微軟出品。反正ken是這麼認為的 本篇開發環境?1、操作系統: Windows 10 X642、SDK: .NET Core ...
  • 一、前言 本篇開發環境?1、操作系統:CentOS7(因為ken比較偏愛CentOS7)2、SDK版本:.NET Core 2.0 Preview 你可能需要的前置知識1、瞭解如何通過Hyper-V安裝CentOS虛擬機2、瞭解CentOS7基礎命令/常用命令 二、安裝 .NET Core SDK ...
  • 普通的ADO.NET獲取DataSet的寫法如下: using System.Configuration; using System.Data; using System.Data.SqlClient; public class SQLHelper { private static readonly ...
  • homebrew是MAC上的一個包管理工具,用於軟體安裝,非常方便。 homebrew安裝: 命令行執行: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew d ...
  • LVM
    LVM(Logical Volume Manager(邏輯捲管理),LVM是建立在硬碟和 分區之上的一個邏輯層,來提高磁碟分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁碟分區,如:將若幹個磁碟分區連接為一個整塊的捲組 (volumegroup),形成一個存儲池。管理員可以在捲組上隨意創建邏輯捲 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...