安装脚本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 -
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=
while [ $i -lt $# ] ; do
i=`expr $i + `
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'" >&
echo "" >&
show_usage
exit -
;;
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

[linux] shell脚本编程-xunsearch安装脚本学习的更多相关文章

  1. linux命令行与shell脚本编程 -----15控制脚本

    常见的Linux系统信号 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进 ...

  2. linux shell语言编程规范安全篇之通用原则【转】

    shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...

  3. Linux Shell 高级编程技巧3----运行级别脚本介绍

    3.运行级别脚本介绍    3.1.运行级别        运行级别介绍:            0    关机            1    单用户模式            2    多用户模式 ...

  4. Linux Shell 高级编程技巧4----几个常用的shell脚本例子

    4.几个常用的shell脚本例子    4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释    4.1.kill_processes.sh(一个杀死进程的脚本) #!/bin/bash c ...

  5. 数据仓库005 - 复习Linux shell命令 - crontab调度 sh脚本 后台执行 软连接

    一.crontab调度 对于linux 自带crontab而言,      xxx.sh的一般编写格式以#!/bin/bash 解释器开头,可在脚本中加入: date 但是,shell脚本执行 需要 ...

  6. [转]linux shell 获取当前正在执行脚本的绝对路径

    原文链接:http://sexywp.com/bash-how-to-get-the-basepath-of-current-running-script.htm 常见的一种误区,是使用 pwd 命令 ...

  7. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  8. Oracle安装部署之linux OS install oracle database安装脚本

    #!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...

  9. linux shell每天一阅 -- 安装nginx以及apache

    当然这个博客原代码是转载大神的... 自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本mynginx.sh #!/bin/sh ###nginx install ...

随机推荐

  1. Delphi XE7中使用JSON

    Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包 ...

  2. 爬虫3:requests库

      一个简单易用的http库,多用于第一步,爬取网站源码   简单例子 import requests   response = requests.get('https://www.baidu.com ...

  3. SQL查询表结构的语句

    SELECT tableName=CASE WHEN a.colorder=1 THEN d.name ELSE '' END ,表说明 =CASE WHEN a.colorder=1 THEN IS ...

  4. RN 中 Native 模块的注入过程

    找到所有的模块 一般来说,只要在模块中声明 RCT_EXPORT_MODULE 即可.这是个宏,展开后是声明了一个函数,定义了两个函数,如下所示. #define RCT_EXPORT_MODULE( ...

  5. .NET Core容器化之多容器应用部署-使用Docker-Compose

    原文补充: -- docker-compose.ymlversion: ' services: mvc-web: container_name: mvc.web.compose build: . re ...

  6. L04-VirtualBox中CentOS7网络配置(可连外网)

    本文所述的方法在RHEL6.5.RHEL7和CentOS6.5中同样适用. 1.工具:VirtualBox,虚拟机:CentOS7 2.VirtualBox工具中的网络配置 (1)VirtualBox ...

  7. [BZOJ 5072][Lydsy1710月赛]小A的树

    传送门 \(\color{green}{solution}\) 嗯...其实我也不太会,所以大胆猜个结论吧(后来证了一下,然后放弃了...). 我们发现如果要使一个联通块的黑点数量为\(k\)的方案最 ...

  8. [ZJOI2019]语言[树链的并、线段树合并]

    题意 题目链接 分析 考虑枚举每个点的答案,最后除以 2 即可. 可以与 \(u\) 构成合法点对 的集合 为所有经过了 \(u\) 的链的并.因为这些链两两有交,根据结论 "树上两条相交的 ...

  9. css变量的应用

    微软在2017年3月份宣布 Edge 浏览器将支持 CSS 变量,到现在已经过去一年多了,哈哈,是不是有点后知后觉? 这个知识点是在阮一峰的日志上浏览到的,在此借用一下了..跟大家分享一下..... ...

  10. es6里class类

    /** * Created by issuser on 2018/11/27. *///如果静态方法包含this关键字,这个this指的是类,而不是实例./** (1)类的实例属性 1.类的实例属性可 ...