[linux] shell脚本编程-xunsearch安装脚本学习
安装脚本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安装脚本学习的更多相关文章
- linux命令行与shell脚本编程 -----15控制脚本
常见的Linux系统信号 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进 ...
- linux shell语言编程规范安全篇之通用原则【转】
shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...
- Linux Shell 高级编程技巧3----运行级别脚本介绍
3.运行级别脚本介绍 3.1.运行级别 运行级别介绍: 0 关机 1 单用户模式 2 多用户模式 ...
- Linux Shell 高级编程技巧4----几个常用的shell脚本例子
4.几个常用的shell脚本例子 4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释 4.1.kill_processes.sh(一个杀死进程的脚本) #!/bin/bash c ...
- 数据仓库005 - 复习Linux shell命令 - crontab调度 sh脚本 后台执行 软连接
一.crontab调度 对于linux 自带crontab而言, xxx.sh的一般编写格式以#!/bin/bash 解释器开头,可在脚本中加入: date 但是,shell脚本执行 需要 ...
- [转]linux shell 获取当前正在执行脚本的绝对路径
原文链接:http://sexywp.com/bash-how-to-get-the-basepath-of-current-running-script.htm 常见的一种误区,是使用 pwd 命令 ...
- linux shell:nginx日志切割脚本
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.l ...
- Oracle安装部署之linux OS install oracle database安装脚本
#!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...
- linux shell每天一阅 -- 安装nginx以及apache
当然这个博客原代码是转载大神的... 自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本mynginx.sh #!/bin/sh ###nginx install ...
随机推荐
- Delphi XE7中使用JSON
Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包 ...
- 爬虫3:requests库
一个简单易用的http库,多用于第一步,爬取网站源码 简单例子 import requests response = requests.get('https://www.baidu.com ...
- SQL查询表结构的语句
SELECT tableName=CASE WHEN a.colorder=1 THEN d.name ELSE '' END ,表说明 =CASE WHEN a.colorder=1 THEN IS ...
- RN 中 Native 模块的注入过程
找到所有的模块 一般来说,只要在模块中声明 RCT_EXPORT_MODULE 即可.这是个宏,展开后是声明了一个函数,定义了两个函数,如下所示. #define RCT_EXPORT_MODULE( ...
- .NET Core容器化之多容器应用部署-使用Docker-Compose
原文补充: -- docker-compose.ymlversion: ' services: mvc-web: container_name: mvc.web.compose build: . re ...
- L04-VirtualBox中CentOS7网络配置(可连外网)
本文所述的方法在RHEL6.5.RHEL7和CentOS6.5中同样适用. 1.工具:VirtualBox,虚拟机:CentOS7 2.VirtualBox工具中的网络配置 (1)VirtualBox ...
- [BZOJ 5072][Lydsy1710月赛]小A的树
传送门 \(\color{green}{solution}\) 嗯...其实我也不太会,所以大胆猜个结论吧(后来证了一下,然后放弃了...). 我们发现如果要使一个联通块的黑点数量为\(k\)的方案最 ...
- [ZJOI2019]语言[树链的并、线段树合并]
题意 题目链接 分析 考虑枚举每个点的答案,最后除以 2 即可. 可以与 \(u\) 构成合法点对 的集合 为所有经过了 \(u\) 的链的并.因为这些链两两有交,根据结论 "树上两条相交的 ...
- css变量的应用
微软在2017年3月份宣布 Edge 浏览器将支持 CSS 变量,到现在已经过去一年多了,哈哈,是不是有点后知后觉? 这个知识点是在阮一峰的日志上浏览到的,在此借用一下了..跟大家分享一下..... ...
- es6里class类
/** * Created by issuser on 2018/11/27. *///如果静态方法包含this关键字,这个this指的是类,而不是实例./** (1)类的实例属性 1.类的实例属性可 ...