shell编程技术之-基础知识
一.脚本结构
linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的。相对命令行来说,开发效率提高。因此他的构架有2部分构成#!和命令序列。其中#!指明此脚本是用哪个解析器来解析。 例如:

二.基础知识
2.1 变量
shell本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义。
例如:
#!/bin/bash #2.2
a="hello word"
b=
echo "A is" $a
echo "B is" $b
2.2 参数
同C程序一样,shell本中也可以使用命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
例如:
#!/bin/bash #2.3
echo "number of var:" $#
echo "value of vars" $*
echo "name of script" $
echo "value of var1" $
echo "value of var2" $
终端: ./bash.sh a 3, 结果可以此验证
2.3 数学计算
shell本提供了一个专门的命令expr来计算数学表达式,例如expr 5 +1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反号。var=`expr 20 / 10`。 例如:
#!/bin/bash #2.4
var1=
var2=
var3=`expr $var2 / $var1`
var4=`expr $var2 + $var1`
echo $var3
echo $var4
2.5 流程控制语句
2.5.1
shell脚本中最基本的流程控制语句就是if-then,使用格式:
if [ condition ] (特别提醒:方括号左右两边必须有空格)
then
commands
else
commands
fi
例如:
#!/bin/bash #2.5.
var=
if [ $var -gt ]
then
echo "the value is greater than 5"
fi
2.5.2
shell本提供了for命令,用于创建类似于c语言编程中for
语句一样的循环。使用格式:
for var in list
do
commands
done
例如:
#!/bin/bash #2.5.
list="Sun Mon Tue Wed Thur Fri Sat"
for day in $list
do
echo $day
done
2.5.3
shell本提供了while命令,用于创建类似于c语言编程中
while语句一样的循环。使用格式:
while condition
do
commands
done
例如:
#!/bin/bash while [ $var -gt ]
do
echo $var
var=`expr $var - `
done
shell编程技术之-基础知识的更多相关文章
- 【shell编程】之基础知识-语法
一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...
- 【shell编程】之基础知识了解shell
一.什么是shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了 ...
- 【shell编程】之基础知识-文件包含
和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空 ...
- 【shell编程】之基础知识-输入/输出和重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...
- 【shell编程】之基础知识-函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...
- 【shell编程】之基础知识-流程控制
和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...
- 【shell编程】之基础知识-常用命令
一.Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. ...
- 【shell编程】之基础知识-基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...
- Visual C++ 打印编程技术-打印基础知识
打印机介绍 1.打印术语 *: 1 英寸= 2.54 厘米(cm)= 25.4 毫米(mm) cpi (Characters Per Inch): 每英寸内所含的字符数,用来表示字符的大小.间距 cp ...
随机推荐
- jdk各个版本的特性
http://blog.csdn.net/mixiuali/article/details/8180100
- http断点续传原理:http头 Range、Content-Range
所谓断点续传,也就是要从文件已经下载的地方开始继续下载.在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了.一般断点下载时才用到 Range 和 Content-Range 实 ...
- RequireJS入门(三)
这篇来写一个具有依赖的事件模块event.event提供三个方法bind.unbind.trigger来管理DOM元素事件. event依赖于cache模块,cache模块类似于jQuery的$.da ...
- hibernate 一对多操作(级联操作)
一对多级联操作 1. 级联保存 复杂写法 Company company = new Company(); company.setcName("Hello"); company. ...
- INSERT command denied to user
问题分析: 网站运行突然出现下面的 MySQL 错误: 645297 [http-88-13] ERROR com.mes.cart.dao.impl.CartDAOImpl - CartDAOImp ...
- 【IIS小技巧】将IIS Express改成可以通过ip地址访问
通过浏览器访问的是localhost,如果通过手机访问则需要用ip地址,所以要修改IIS Express的配置,允许通过ip地址访问. IIS Express的配置文件默认在C:\Users\User ...
- HDU 1501 & POJ 2192 Zipper(dp记忆化搜索)
题意:给定三个串,问c串是否能由a,b串任意组合在一起组成,但注意a,b串任意组合需要保证a,b原串的顺序 例如ab,cd可组成acbd,但不能组成adcb. 分析:对字符串上的dp还是不敏感啊,虽然 ...
- google login page
</pre><pre name="code" class="html"><div class="container&qu ...
- Spring下@ResponseBody响应中文内容乱码问题
引言: 在JQuery的Ajax请求中,收到的基于后台返回回来的结果出现乱码,在后台其内容正确,到了前台之后,确是乱码??????,该怎样解决呢? 1. 问题的提出 前端基于JQuery的Ajax进 ...
- Android:Service的非绑定式的创建和生命周期
Android的Service若使用非绑定式的创建,则创建后将无法再与它取得联系.即无法传递消息參数等: 所以假设希望创建后仍然与其存在联系,那么能够參考我的前几篇博客<Android:Serv ...