Shell编程
来源:互联网 发布:淘宝网淋浴塑料帘布 编辑:程序博客网 时间:2024/05/13 20:57
Shell编程
让.sh可执行
修改文件属性
chmod a+x xxx.sh
添加注释
在.sh脚本脚本中添加如下注释
#!/usr/bash
使用变量
变量分类
- 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
变量命名
- 首个字符必须为字母(a-z,A-Z)。
- 中间不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
定义变量
#定义字符串(注意等号之间不可以有空格) var="this is a string!"#定义数字 var=100#定义只读变量 readonly var
使用变量
#无括号echo $var#有括号echo ${var}#删除变量unset var
字符串
定义字符串
a='a'#单引号定义字符串str='this is a ${a}'##结果为this is a ${a},单引号内的任何字符串都会原样输出#双引号定义字符串str="this is a ${a}"##结果为this is a a,双引号里边可以出现转义字符,并可以有变量
字符串的相关操作
#拼接字符串str1="hello"str2="world"str="${str1} ${str2}"#获取字符串长度echo ${#str}#提取子字符串echo ${str:1:4}
Shell数组
定义数组
array=(1 2 3 4 5)arraystr=("a" "b" "c" "d")#可以单独定义数组的值array[0]=value0...array[n]=valuen
使用字符串
#使用数组元素的一般格式是:${array[n]}#获取数组所有元素${array[@]}#获取数组长度length=${array[@]}
运算符
算术运算符
shell本身不支持算术运算符,需要使用expr
进行算术运算
或者使用let
逻辑运算符
注意逻辑运算符的格式如下 :
[ a op b ]#注意中间的空格#如果为真返回0,如果为假返回1
关系运算符
=-le <=
逻辑运算符
- &&
- ll
字符串运算符
文件测试运算符
输入输出
输出
echo
echo something
printf
#same as `printf` in Cprintf "%d" 100
输入
read
read var
流程控制
分支结构
if [ condition ]then commandelif then commandelse commandfi
case var invalue-1) command;;value-1) command;;*) command;;esac
循环结构
for var in item1 item2do commanddone
while condition(true/:)do commanddone
函数
定义函数
[function] fun [()]{ command [return value;]}
使用函数
- 函数相当于一条语句
- 用$?获取函数返回结果
- 在函数中用
1, 2获取参数
文件包含
#包含文件. filename
0 0
- shell 以及shell编程
- Shell和Shell编程
- 【shell】shell 编程基础
- Shell及其Shell编程
- Shell编程
- Shell编程
- Shell编程
- shell编程
- Shell编程
- Shell编程
- shell 编程
- Shell编程
- Shell编程
- shell编程
- shell编程
- Shell编程
- shell编程
- Shell 编程
- Python 函数
- Q58:二叉树的下一个结点
- 费用流+建图——Teamwork ( HDU 4494 )
- udacityAS学习笔记1.1
- Android开发发布lib到jcenter
- Shell编程
- Java中多态注意事项
- 【JAVA开发框架】Hibernate框架知识点详解入门教程与测试实例
- struts2获取request对象的四种方式
- 常用算法
- 浅谈C++多态性
- Linux常用命令
- C++ 数字翻转(九度OJ 1089)
- OpenCV XML和YAML文件的写入和读取