shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算
2014-04-09 21:35
661 查看
1. 执行 shell 脚本
方法一: chmod +x uad.sh# 需要含有 x 权限
./uad.sh
// 不需要考虑 x 权限
方法二:sh uad.sh#用sh解释器解析
方法三: source uad.sh#用当前默认解释器解析,后两者不需要加课执行权限
2. 管道
格式:命令1| 命令2
例如:find . -name "*" | wc -l
3. 重定向
重定向输入:<从指定文件读取数据
重定向输出:>, >>
输入结果覆盖,追加到指定的文件
标准错误输出:2>, 2>>
混合输出:&>, &>>
标准输出和错误信息覆盖,追加
4. 逻辑分隔
逻辑或: 命令1||命令2(只要一个执行)
逻辑连接符: 命令1;命令2(依次执行前后的命令)
5. 变量
引用变量:$变量名,${变量名} (避免变量连接起来)
变量:
系统赋值:USER, LONGNAME, HOME, SHELL
用户操作: PATH, LANG, CLASSPATH...
env: 查看环境变量
其他特殊变量:
$?: 前一条命令的状态值,0为正常,非0为异常
$0: 脚本自身的程序名
$1-$9: 第1到第9个位置参数
$*: 命令行的所有位置参数的内容
$#: 命令行的位置参数个数
6. 引号
单引号:禁止引用,转义
反撇号`(键盘上数字1前面的那个符号)或$():以命令输出进行替换
7 整数运算
格式: expr 数值1 操作符 数值2
例如: expr 45 \* 2145*21
x=45; y=46; expr $x - $y
使用 $[] 表达式,算数替换
格式:$[数值1 操作符 数值2]
例如:x=45; y=46; echo $[x-y];
变量的递增处理
格式: let 变量名++, let 变量名--
let x+=2;
使用随机数
RANDOM 变量 # 范围为[0, 32767]
echo $[RANDOM%100]
生成数字序列
格式:seq 首数 末尾数
seq 首数 增量 末尾数
seq 3 5-> 3 4 5
seq 3 2 10 -> 3 5 7 9
将表达式给 bc 命令处理
echo "45.67-21.05" | bc# 结果:24.62
echo "scale=4;10/3" | bc# 结果:3.3333 #scale=n约束小数位
逻辑与: 命令1&&命令2(同时执行成功)
定义及赋值:变量名=变量值
双引号:允许引用,\转义
例如:echo `who` = echo $(who) = who #命令
使用expr命令,计算表达式
例如:seq 3->
1 2 3
方法一: chmod +x uad.sh# 需要含有 x 权限
./uad.sh
// 不需要考虑 x 权限
方法二:sh uad.sh#用sh解释器解析
方法三: source uad.sh#用当前默认解释器解析,后两者不需要加课执行权限
2. 管道
格式:命令1| 命令2
例如:find . -name "*" | wc -l
3. 重定向
重定向输入:<从指定文件读取数据
重定向输出:>, >>
输入结果覆盖,追加到指定的文件
标准错误输出:2>, 2>>
混合输出:&>, &>>
标准输出和错误信息覆盖,追加
4. 逻辑分隔
逻辑或: 命令1||命令2(只要一个执行)
逻辑连接符: 命令1;命令2(依次执行前后的命令)
5. 变量
引用变量:$变量名,${变量名} (避免变量连接起来)
变量:
系统赋值:USER, LONGNAME, HOME, SHELL
用户操作: PATH, LANG, CLASSPATH...
env: 查看环境变量
其他特殊变量:
$?: 前一条命令的状态值,0为正常,非0为异常
$0: 脚本自身的程序名
$1-$9: 第1到第9个位置参数
$*: 命令行的所有位置参数的内容
$#: 命令行的位置参数个数
6. 引号
单引号:禁止引用,转义
反撇号`(键盘上数字1前面的那个符号)或$():以命令输出进行替换
7 整数运算
格式: expr 数值1 操作符 数值2
例如: expr 45 \* 2145*21
x=45; y=46; expr $x - $y
使用 $[] 表达式,算数替换
格式:$[数值1 操作符 数值2]
例如:x=45; y=46; echo $[x-y];
变量的递增处理
格式: let 变量名++, let 变量名--
let x+=2;
使用随机数
RANDOM 变量 # 范围为[0, 32767]
echo $[RANDOM%100]
生成数字序列
格式:seq 首数 末尾数
seq 首数 增量 末尾数
seq 3 5-> 3 4 5
seq 3 2 10 -> 3 5 7 9
将表达式给 bc 命令处理
echo "45.67-21.05" | bc# 结果:24.62
echo "scale=4;10/3" | bc# 结果:3.3333 #scale=n约束小数位
逻辑与: 命令1&&命令2(同时执行成功)
定义及赋值:变量名=变量值
双引号:允许引用,\转义
例如:echo `who` = echo $(who) = who #命令
使用expr命令,计算表达式
例如:seq 3->
1 2 3
相关文章推荐
- [linux学习笔记]第3天:变量分类,重定向,管道命令,程序执行流,文本处理类命令, 正则表达式,短路操作符
- Linux学习命令汇总四——Bash中变量.文件通配符.管道与重定向.算术运算及循环或判断语句
- LINUX系统学习笔记管道符和作业控制 ,shell变量 , 环境变量配置文件
- linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)
- Java执行带重定向或管道的shell命令的问题
- Linux学习日记 —— 10.3.4 Shell基础-Bash基本功能-多命令顺序执行与管道符
- Understanding Unix/Linux Programming 笔记:chapter 9:可编程的shell、shell变量和环境; chapter 10:I/O重定向和管道
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- java执行带重定向或管道的shell命令的问题
- Shell学习笔记---变量赋值与运算
- Shell脚本学习笔记-重定向与管道命令
- Linux学习笔记(七)--RedHatEnterpriseLinux 7.0之管道符、重定向、环境变量、Vim编辑器与Shell命令脚本
- shell学习笔记(一):管道与重定向
- shell 学习之正则、别名以及管道重定向
- dos定义变量算术运算逻辑运算表达式分隔符
- Shell变量、数据重定向和管道
- Shell学习笔记---变量赋值与运算---待完善
- Shell学习:笔终端打印、算术运算、常用变量
- Shell(二):变量、数据重定向和管道
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行