Shell脚本语法
- 索引
- 1. 第一行必须是"#!/bin/sh"
- 2. 注释:一行开头为 #
- 3. 定义变量
- 4. 逻辑符号
- 5. 接收参数
- 6. 控制流:if/then/elif/else/fi
- 7. 循环:for/do/done
- 8. 格式化输出日期
- 9. exist
- 10. 系统变量
- 参考文档
索引
1. 第一行必须是"#!/bin/sh"
- 它不是注释,"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在;
- 如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.
- 如果脚本被编写为在Kornshell ksh中运行,而默认运行shell脚本的为C shell csh,则脚本在执行过程中很可能失败。
- 所以建议大家就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。
2. 注释:一行开头为 #
3. 定义变量
定义单变量
p_name='kang'
使用单变量
echo $p_name'.js' # 输出kang.js
echo $p_name.js # 输出kang.js
cp $p_name.js copy.js;
4. 逻辑符号
命令1 && 命令2
如果左边的“命令1”执行成功,那么右边的“命令2”才会被执行。
命令1 || 命令2
与&&相反。如果“命令1”未执行成功,那么就执行“命令2”。
() {}
...
5. 接收参数
脚本文件“copy.sh”,其内容如下:
m=$1
n=$2
echo $m-$n
执行命令:“sh copy.sh 111 222”;输出 111-222
6. 控制流:if/then/elif/else/fi
注意"["和"]"前后的空格必须有,否则提示错误
m="kang2"
if [ "$m" == 'kang' ]; then
echo 'kang'
elif [ $m == 'kang2' ]; then
echo 'kang2'
else
echo 'no'
fi
示例:判断文件夹
if [ -d './js' ]; then
echo 'js是文件夹'
fi
7. 循环:for/do/done
注意:循环项是以“空格”拆分的字符串
name="rain man's blog"
for loop in $name; do
echo $loop;
done
8. 格式化输出日期
curdate="`date +%Y%m%d%H%M%S`"
echo $curdate
执行结果:20110904175817
9. exist
退出当前shell脚本,一般来说,返回0表示执行成功,其他值表示没有执行成功。
exist 0 # 返回0
exist 1 # 返回1
10. 系统变量
pwd=$PWD # 当前目录
user=$USER # 当前用户
echo $pwd
echo $user
运行脚本后输出:
/home/rainman/test
rainman
参考文档
Shell脚本语法的更多相关文章
- shell脚本语法基础汇总
shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...
- U-Boot shell脚本语法
/********************************************************************** * U-Boot shell脚本语法 * 说明: * 之 ...
- Shell脚本语法---在Makefile等文件…
1. Shell脚本语法 1.1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Sta ...
- Linux系统编程(15)——shell脚本语法
Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 s ...
- shell编程基础(四): shell脚本语法之函数及调试
一.Shell脚本中的函数 和C语言类似,Shell中也有函数的概念,但是函数定义中没有返回值也没有参数列表.例如: #! /bin/sh fun(){ echo "Function fun ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- Shell 脚本语法
条件测试:test 和 [ 命令 test 或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C ...
- Linux bash shell脚本语法入门
1.基础 #!/bin/bash //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本 # //shell脚本注释符号 2.变量和使用 HOME= ...
- (转)Linux bash shell脚本语法入门
http://www.linuxsky.org/doc/newbie/201004/389.html 1.基础 #!/bin/bash //bash脚本第一句都是这个,他会让系统指定以bash来解释这 ...
随机推荐
- C语言中的函数与指针
1. 为什么需要函数? 函数就是功能的封装. 函数就是为了实现某个功能而编写的一段代码 scanf() , printf() 2.函数优点: 代码更简洁 代码复用 如果业务逻辑变化,只把相应的 ...
- Genome2D编译方法
Genome2D是一个高效的2D引擎,现在支持Flash(stage3d)和HTML5,因为只有作者一个人在维护,就没开源代码. 最近和作者沟通了下,已经开源啦. 作者划分了几个模块,编译起来不是特别 ...
- IT行业常见职位职业路线图
我曾经面试过一些计算机相关毕业的应届生,问他希望做什么工作时,他回答只要是软件开发就好了,再细问一下你了解到的软件开发是怎样的?除了软件开发,还有其它什么工作?就答不出来了. 这里我先给出一张IT知识 ...
- Spring Batch 批处理框架
<Spring Batch 批处理框架>基本信息作者: 刘相 出版社:电子工业出版社ISBN:9787121252419上架时间:2015-1-24出版日期:2015 年2月开本:16开页 ...
- 检测PC端和移动端的方法之一
window.mobileCheck = function() { var check = false; (function(a){if(/(android|bb\d+|meego).+mobile| ...
- Office——EXCEL 打开自动修改 关闭自动保存
==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...
- 不错的flash,动漫,小插件小集
(来源:http://abowman.com/google-modules/) embed code <object width="220" height="166 ...
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...
- C#基础---C#如何对Json字符串处理
Json字符串对于做web应用的应该很熟悉,其实在很多请求我们返回的都是Json字符串.那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSD ...
- hdu1247 Hat’s Words
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=1247 题目: Hat's Words Time Limit: 2000/1000 MS (Ja ...