shell 脚本注意事项
设脚本名为test.sh
第一行应该为#! /bin/bash
1、运行和调试的结果是不一样的
调试 sh -x test.sh 这时在计算两个数的和sum=$[$a+$b]时得到sum=3+4,而不是7
运行 要先给脚本加执行权限 ,执行科的结果7
2、在同一行后还有其他命令则需分号隔离;if 条件判断之后 要有 then 关键字,然后才是命令
3、判断条件使用[]括起来,里面的条件和中括号之间要有空格分割,且算术比较不能用运算符只能用-lt,-gt,-le.-ge,-eq,-ne;
若要用运算符,则用(())包含判断语句,注意是两个小括号
if语句的格式
if 判断语句一 ; then
command
elif 判断语句二; then
command
else
command
fi
4、shell 脚本中if还经常判断关于档案属性,比如判断是普通文件还是目录,判断文件是否有读写执行权限等。常用的也就几个选项:
-e :判断文件或目录是否存在
-d :判断是不是目录,并是否存在
-f :判断是否是普通文件,并存在
-r :判断文档是否有读权限
-w :判断是否有写权限
-x :判断是否可执行
使用if判断时,具体格式为: if [ -e filename ] ; then
5、echo xxx >> filename 是向文件追加内容到最后
echo xxx > filename 是清除文件内容,然后写入新内容
6、给变量赋值时等号与变量之间不能有空格
7、在shell 脚本中,除了用if来判断逻辑外,还有一种常用的方式,那就是case了。具体格式为:
case 变量 in
value1)
command
;;
value2)
command
;;
value3)
command
;;
*)
command
;;
esac
上面的结构中,不限制value的个数,*则代表除了上面的value外的其他值。
shell 脚本注意事项的更多相关文章
- 【Shell】Shell脚本注意事项
1.大部分的Linux系统默认配置bash.对比sh,bash扩展了一些命令和参数,并且保留对sh的一些兼容.除了bash.sh还有csh(语法类似C语言).tcsh(csh升级版).ash(适合低内 ...
- 大数据学习(1)-shell脚本注意事项
1.变量=值 (例如STR=abc) 不用加引号,但此时空格不再是空格字符,特殊字符可用于转义 2.等号两侧不能有空格 3.变量名称一般习惯为大写 4.双引号和单引号有区别,双引号仅将空格脱意,单引 ...
- linux crontab定时任务运行shell脚本(shell执行sql文件)
https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...
- Linux 【Shell脚本经典案例】
Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理 ...
- Linux Shell脚本编程的注意事项
Linux下(Shell脚本 http://www.jbxue.com/jb/shell/)编程的一些注意事项,如编程风格.命名风格等. 一.常用技巧 ssh user@server bash < ...
- shell脚本编程-使用结构化命令(if/else)(转)
11.1 使用if-then语句 格式如下 if语句会执行if行定义的那个命令,如果该命令的退出状态码是0,则then部分的语句就会执行,其他值,则不会 1 2 3 4 if command th ...
- mac终端下运行shell脚本
最近公司要弄关于IOS下自动化打包的东西,研究了用命令行的形式来代替手工的方式来处理.即: 用xcodebuild 和xcrun 语法来进行脚本实现. 但由于语法的结构够了,另一个问题产生了, ...
- 通过shell脚本获取日期,并赋给变量
通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在 ...
- C程序调用shell脚本共有三种方法
C程序调用shell脚本共有三种法子 :system().popen().exec系列函数call_exec1.c ,内容为:system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令e ...
随机推荐
- R中,去掉dataframe中的NA行
R中使用complete.cases 和 na.omit来去掉包含NA的行 现在有个一data.frame datafile如下所示 Date sulfate nitrate ID 1 ...
- CSS组件架构的设计思想
不管是设计思想,还是架构,都可以总结为一个词:AO模式.A表示Append,即“附加”的意思,O表示Overwrite,即“重写”的意思.所有的CSS组件都是沿用这种思想来设计的.这也是CSS的特性, ...
- NODEJS - express
1.express组织结构 app demo |---node_modules------用于安装本地模块. |---public------------用于存放用户可以下载到的文件,比 ...
- NserviceBus+rabbitmq
Ok so I figured this out after looking a bit at the code and the requirements for amqp URI and it sh ...
- HttpRequest.UserAgent 属性 (System.Web)
获取客户端浏览器的原始用户代理信息.
- do-while语句
一.语句格式格式1:do 语句1;while (条件表达式); 格式2:do { 语句1; 语句2; -}while (条件表达式); 语句执行过程:1.执行一遍循环体.2.求出作为循环条件的 ...
- zhuang 自定义Xcode代码模板:Code Snippet
Xcode强大的代码提示功能是有目共睹的,用过都知道,可是你是否想过添加一些自定义的代码提示模板?你是否想让if默认的左括号挪到下一行?还有for.while.switch等等……如果你有这方面的需求 ...
- NHibernate系列文章一:NHibernate介绍
摘要 NHibernate是一个成熟的开源的面向对象的.net映射框架.大量的实际项目中正在使用该框架.他是建立在ADO.Net基础之上.目前的版本是NHibernate 4.0.4.本系列文章都是基 ...
- ajax跨域请求带cookie
调用网站:a.xxx.com jQuery(document).ready(function () { $.ajax({ type: "get", async: true, url ...
- java中Thread的 interrupt异常处理
http://blog.csdn.net/srzhz/article/details/6804756