首页 > 系统服务 > 详细

Shell脚本学习

时间:2018-12-09 14:45:12      阅读:184      评论:0      收藏:0      [点我收藏+]

为了捞取日志,自己用python写了一些东西,大致套路就是读取写入文件的操作,放到linux上跑。实际使用时发现要操作的文件有时比较大,直接打开文件找需要的东西可能会有一些效率问题。所以学习一下shell脚本,看一下能不能用这种方法来直接监听日志取到需要的东西。以下是自己学习时的一些笔记。

Shell脚本的运行

shell脚本第一行一般都是如下内容。#!开头,告诉系统使用什么解释器(使用哪一种Shell)

#!/bin/bash

如何运行:

两种方法。

作为可执行程序的话,cd到相应目录后,运行以下命令

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本。一定要写成./test.sh,意味着在当前目录找。
# 如果直接写test.sh,系统会去PATH里找test.sh,而PATH里一般只有/bin, /sbin, /usr/bin,/usr/sbin

或者可以直接sh test.sh。这样的话不用在第一行指定解释器

 

数据类型

变量

变量定义:等号两端不能有空格

变量可以指定为只读变量。只读变量的值不可以再改变。前面加readonly(比如,readonly aaa)

 

变量使用:在变量名前加dollar符。变量名外用大括号括起来,以表明变量的边界(比如${aaa}像这样)

只有使用变量时才加$。如果是给变量重新赋值则不需要

 

删除变量(非只读变量才可以被删除):

unset variable_name

字符串

字符串可以用单引号、双引号,也可以不用引号。

区别:

单引号:单引号内内容原样输出,变量无法生效。单引号内不能有单个的单引号,必须成对出现

双引号:可以有变量,可以有转义字符

 

字符串长度

${#variable_name} # 井号获取长度

截取字符

${variable_name:startInd:endInd} # 截取第startInd个字符到第endInd个字符

查找字符串

echo `expr index "$variable_name" io`  # 查找字符串中第一个符合条件的字符位置。io表示查找条件是i或者o
# 注意expr后面是`不是

数组

bash只支持一维数组

 

未完待续

 

Shell脚本学习

原文:https://www.cnblogs.com/wuhuohanke/p/10083798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!