shell 编程基础(2)
来源:互联网 发布:手机域名的价值 编辑:程序博客网 时间:2024/06/06 07:05
shell编程(二)
二 变量
5 位置参数变量
$0 命令自己
$1 第一个参数
$2 第二参数
$9 第九个参数
例2:输出位置参数变量,脚本后要接参数
#!/bin/bash
echo "the command is $0"
echo "canshu1 is $1"
echo "canshu2 is $2"
6 预定义变量
$? 上一个命令的返回值。 0 上一个命令正确执行 非0 上一个命令不正确
$# 统计命令之后的参数个数
$* 返回所有参数
$n 位置参数变量
例3:输出预定义变量
#!/bin/bash
echo "canshu zongshu $#"
echo "canshu liebiao: $*"
echo $?
7 键盘读取命令
read -p “提示信息” -t 等待时间 变量名
例子4:通过read读入变量值
#!/bin/bash
read -p "please input num1:" -t 30 test1
read -p "input num2:" -t 30 test2
sum=$(( $test1 + $test2))
echo “num1 + num2 = $sum”
8 数值运算
变量值默认都是字符串型,要想进行数值运算。以下三种任选一种
1)declare方法
num1=123
num2=456
declare -i sum=$num1+$num2
2)sum=$(( $num1 + $num2 ))
3)sum=$(expr $num1 + $num2) 注意+左右必须空格
4)运算符
+ - \* / %取余
三 shell中常用命令
1 行提取命令grep
选项: -v 反向选择
-n 提取时,显示行号
举例:
grep "[^a-z]hen" test.txt
oo前不是小写字母的行匹配。 注意:和开头没有关系
grep “\.$” test.txt
匹配以.结尾的行
grep "^[^A-Za-z]" test.txt
匹配不以字母开头的行 注意:所有字母不能这样写 A-z
grep “^$” test.txt
匹配空白行
grep "oo*" test.txt
匹配最少一个o
2 列提取命令
1) cut
cut -d “分隔符” -f 提取列 文件名
more /etc/passwd | grep "/bin/bash" | cut -d ":" -f 1,3
提取passwd文件中可以登录的用户的用户名和UID
2) awk
awk '条件 {动作}'
last | awk '{printf $1 "\t" $3 "\n"}'
提取last显示结果的第一和第三列
\t tab键
\n 换行
\r 回车
last | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|awk '{printf $1 "\t" $3 "\n"}'
在last中提取包含ip的行,在行中提取第一和第三列
awk内置变量 FS 指定分隔符
more /etc/passwd | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'
读取passwd文件,以":"为分隔符,截取第一和第三列
BEGIN 在截取前使分隔符生效。如果没有BEGIN,那么第一行自定义的分隔符不生效
6 echo命令
echo -e “输出内容”
-e 识别格式化打印内容
echo -e “1\t2\t3” 打印tab键
echo -e "\e[1;31m this is red text \e[0m" 输出红色字体
\e[ 格式
1;31m 指定颜色
0m 恢复颜色(重置)
30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37=白色
echo -e “\e[1;42 background \e[0m”
背景颜色:40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色
例子5:echo输出的小游戏
注: cat -A 文件名 显示文件隐,包括藏字符
取消dos文档的回车符,两种办法
1) dos2unix 文档名
2) vi -b 文档
:%s/^M//g ^M使用 ctrl+v+m 输入
例6:数据备份
#!/bin/bash
DAY=`date +%Y%m%d`
#定义日期变量
SIZE=`du -sh /var/lib/mysql`
#定义mysql目录大小的变量
echo "Date: $DAY" >> /tmp/dbinfo.txt
#把日期输入信息文档
echo "Data Size: $SIZE" >> /tmp/dbinfo.txt
#把大小输入信息文档
cd /opt/dbbak
#切换目录
tar zcvf mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
打包备份mysql目录,同时打包信息文档
rm -f /tmp/dbinfo.txt
- shell 编程基础(2)
- Shell编程基础(2)
- shell编程基础(2)
- Shell编程(基础)
- 基础shell编程-------shell学习(12)
- shell编程基础(1.SHELL范式)
- 【shell】shell 编程基础
- linux shell编程基础2
- shell编程基础(2)---&&与||
- Shell编程基础(转)
- shell编程基础(3)
- shell编程基础(4)
- Shell编程基础 (转载)
- (转)Shell编程基础
- Shell编程基础(linux)
- Shell 编程1(基础)
- shell 编程基础(1)
- shell 编程基础(3)
- Xmpp客户端加入群时JID的指定
- 高度集合
- python中使用system函数时传入中文时的编码
- 缺页异常详解
- php基础教程——学习总结
- shell 编程基础(2)
- iOS-Core-Animation之四----视觉效果
- SAE和BAE小试
- 推荐十款来自极客标签的超棒前端特效[第十五期]
- IOS model窗体的切换效果
- range和xrange的比较
- fiddler脚本定制之设置session颜色
- Doubango代码学习(一):开始篇
- SSL传输加密HTTPS