shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算
来源:互联网 发布:电脑网络连接不上 编辑:程序博客网 时间:2024/06/13 15:17
1. 执行 shell 脚本
- 方法一: chmod +x uad.sh# 需要含有 x 权限
- ./uad.sh
- // 不需要考虑 x 权限
- 方法二:sh uad.sh#用sh解释器解析
- 方法三: source uad.sh#用当前默认解释器解析,后两者不需要加课执行权限
- 格式:命令1| 命令2
- 例如:find . -name "*" | wc -l
3. 重定向
- 重定向输入:<从指定文件读取数据
- 重定向输出:>, >>输入结果覆盖,追加到指定的文件
- 标准错误输出:2>, 2>>
- 混合输出:&>, &>>标准输出和错误信息覆盖,追加
- 逻辑或: 命令1||命令2(只要一个执行)
- 逻辑连接符: 命令1;命令2(依次执行前后的命令)
- 引用变量:$变量名,${变量名} (避免变量连接起来)
- 变量:
- 系统赋值:USER, LONGNAME, HOME, SHELL
- 用户操作: PATH, LANG, CLASSPATH...
- env: 查看环境变量
- 其他特殊变量:
- $?: 前一条命令的状态值,0为正常,非0为异常
- $0: 脚本自身的程序名
- $1-$9: 第1到第9个位置参数
- $*: 命令行的所有位置参数的内容
- $#: 命令行的位置参数个数
- 单引号:禁止引用,转义
- 反撇号`(键盘上数字1前面的那个符号)或$():以命令输出进行替换
- 格式: 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
0 0
- shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算
- shell变量、重定向、管道
- Shell变量、数据重定向和管道
- shell重定向,管道
- Shell(二):变量、数据重定向和管道
- shell 管道与重定向
- shell管道和重定向
- Shell脚本学习笔记-重定向与管道命令
- shell学习笔记(一):管道与重定向
- shell中输入重定向,输出重定向,管道
- 举例说明shell重定向及管道
- Shell 命令 正则/管道/重定向
- 字符串切割思路--shell重定向 管道
- Shell(4)-管道、重定向、if表达式
- shell 输出重定向和管道
- SHELL重定向和管道的实现
- shell之重定向和管道
- Linux Shell 管道与重定向
- 用c得到格式化的时间-实例
- iOS study Day 2
- zoj 3603 Draw Something Cheat(模拟)
- C#之索引器
- CodeForce 126B
- shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算
- LAMP服务器安装
- 敏捷开发实践(4)-有时候我们需要结对编程
- 相对路径和绝对路径问题
- php __autoload函数 加载类文件
- 【DFS】hdu 2181 哈密顿绕行世界问题
- 使用lucene搜索引擎实现对关键字的简单查询
- XSLT
- poj1947Rebuilding Roads(树形DP,经典。。。。)