shell平时用的上的一些脚本
来源:互联网 发布:linux删除用户附加组 编辑:程序博客网 时间:2024/05/19 12:12
1、shell里统计字符串长度
设shell变量
var=hello
有哪些方法计算$var的长度呢,下面提供几种常用方法:
1 ${#var}
2 expr length $var 或者 expr $var : ./* 或者expr match $var .*
3 awk 'BEGIN {print length("'$var'")}'
4 echo -n $var | wc -c
2、shell里的数组
Bash中还可以使用数组变量,其赋值有两种:
(1) name = (value1 ... valuen) 此时下标从0开始
(2) name[index] = value
数组下标的范围没有任何限制,同时也不必使用连续的分量.
--------------------------------------------------------------------------------
$ A=(a b c def)
==================================================
$ echo ${A[@]} //取全部元素
a b c def
=================================================
$ echo ${A[0]} //取第一个元素
a
=================================================
//取得数组元素的个数
$ echo ${#A[@]}
4
$ echo ${#A[*]}
4
$ echo ${#A[3]} //取得元素3的长度
$
==================================================
$ A[3]=yaoshuyin //将第三个元素重新赋值
$ echo ${A[@]}
a b c yaoshuyin
=================================================
//清除变量
$ unset A
$ echo ${A[@]}
$
==================================================
//清空变量,即将值变为空
$ A=
$ echo ${A[@]}
$
==================================================
#清理一个月前log的脚本
3、for、while、if、case的使用
(1) for的例子
for user in $(cut -d: -f1 $FILENAME)
do
echo $user
done
(2) while的例子
////////////////////////////
(3) if的例子
if [ $WRONG_NUM -ge 20 -o $WRONG_NUM -lt -10 ];then
(4) case的例子
RAND=`expr $RANDOM % 3`
case "$RAND" in
0)
ret=`expr index "$1" "$2"`
;;
1)
ret=`echo $1 $2 | awk '{print index($1, $2)}'`
;;
*)
ret=`expr index "$1" "$2"`
;;
esac
4、 常用
(1)crontab里的脚本加上如下的环境变量,避免crontab执行时找不到变量
PATH=/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:$PATH;
export PATH
(2)
ARGC="$#" #命令行参数个数
ARGV="$*" #命令行参数列表
RUN_HOME=`dirname $0` #脚本所在路径
INDEX=`expr $RANDOM % 10`;
(3)
Ctrl + a - Jump to the start of the line
Ctrl + e - Jump to the end of the line
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
(4)导入crontab
{crontab -l; echo "* * * * *" /path/to/mon.sh; } | crontab -
5、处理数据库
6、awk相关
(1) 将shell的变量传递给awk
awk -v var=$SHELL_VAR '{ print var;}'
7、要注意变量为空的情况,经常会发生“在异常情况下,变量为空,导致脚本报错”
- shell平时用的上的一些脚本
- 平时用的一些基本属性
- shell脚本的一些操作
- Shell脚本的一些语法
- shell脚本的一些注意事项
- shell脚本的一些注意事项
- shell脚本的一些知识
- shell脚本的一些基础知识
- Shell脚本的一些参数
- shell脚本的一些编程
- spark平时的一些笔记
- 平时的一些总结--ing
- 平时使用的一些快捷键
- 一些平时用的iOS 10的小知识点
- 平时用的STL
- 平时开发时经常用的一些javascrpt片断
- 记录一些平时用的工具用法及命令(1)
- 关于平时学习SSH的一些小结,希望大家能用的上!
- readhat的ip配置
- JSF DataTable动态添加Column
- QQ2009 协议分析及破解
- 数据库的连接数对应用系统性能的影响
- JAVA动态代理内部实现
- shell平时用的上的一些脚本
- 一段简单程序为什么在linux终端与win控制台下运行效果不同?(望高手指点)
- No.24
- jsf-后台动态生成richfaces的dataTable(转载)
- linux的less命令
- html读书笔记三
- 差点将数据库搞坏
- XP 下Tomcat 6.0.26 配置
- 苹果15英寸MacBook Pro内部