栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Shell脚本日常积累

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell脚本日常积累

文章目录
    • 1.shell脚本调试技巧
    • 2.Shell脚本自动化交互式
    • 3.Shell的前后台
    • 4.vi命令(编辑模式)
    • 4.shell数组
    • 5.shell数值
    • 6 awk命令
    • 7.字符串的分割
    • 8.常用的linux命令

1.shell脚本调试技巧
#1.Windows下编辑的脚本需要使用dos2unix格式化
dos2unix demo.sh

#2.使用bash命令参数调试
-n:不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示
-v:在执行脚本时,先将脚本的内容输出到屏幕上,然后执行脚本,如果有错误,也会给出错误提示
-x:将执行的脚本内容及输出显示到屏幕上,这是对调试很有用的参数
export PS4='+${LINENO}'可以在每一行的前面加上内容的行号

#3.使用set命令进行部分脚本调试
set-n:读命令但并不执行。
set-v:显示读取的所有行。
set-x:显示所有命令及其参数。
1.通过set-x命令开启调试功能,而通过set+x关闭调试功能
2.通过set-x命令开启调试功能,而通过set+x关闭调试功能
2.Shell脚本自动化交互式

1.Here document

格式

命令 << 分隔串(最为常见的为EOF)
字符串1
…
字符串n
分隔串

举例

root@localhost test]# cat test.sh
#! /bin/bash
read -p "enter number:" no
read -p "enter name:" name
echo you have entered $no, $name

#然后我们利用重定向来完成交互的自动化:
[root@localhost test]# ./test.sh <1
>lp
you have entered 1, lp
3.Shell的前后台
命令含义
fg( frontground) 前台执行Ctrl+z可以挂起前台运行的程序,用fg恢复到前台
bg(background) 后台执行在命令后面加上&它会在后台执行,并将特殊的环境变量$!设置为该任务的进程ID
4.vi命令(编辑模式)
12
显示行号set nu
跳转到指定的行行数gg
删除指定的行行数dd
删除所有内容ggdG
跳转到文本末尾G
跳转到当前行末尾A
撤销u
恢复上一步被撤销的ctrl+u
从上往下查/字符
从下往上查?字符
4.shell数组
# 数组的定义
array_name=(a b)
# 传递所有的数组值
函数名 ${array_name[@]}
# 查看所有数组的索引
${!array_name[@]}
# 查看
${#array_name[@]}
5.shell数值
# 数值的定义
i=0 #不要有空格
# 数值的计算
let i=i+1
6 awk命令
awk -F [:|] # 正则匹配分割符号
7.字符串的分割
${parameter/parttern/string} 
用string来替换第一个匹配的pattern
${parameter//pattern/string} 
用string来替换parameter变量中所有匹配的pattern

string="hello,shell,split,test"  
array=(${string//,/ })  
 
for var in ${array[@]}
do
   echo $var
done 
8.常用的linux命令

1.初始化项目权限: umask 007

2.查看xx.so文件属于那个库yum whatprovides xxx.so

3.查看磁盘空间:df -h

4.查看系统版本:cat /etc/*release

5.shell中常见的字符串操作

12
-z检测字符串长度是否为0,为0返回 true。
-n检测字符串长度是否不为 0,不为 0 返回 true。

6.logger的用法

12
-i逐行记录每一次logger的进程ID
-t指定标记记录
#在/var/log/messages文件中记录为 lp[123456]:hello
logger -i -t lp "hello"

7.shell 脚本中$ , , ,#,$?分别代表什么意思?

12
$*这个程式的所有参数,此选项参数可超过9个。
$#这个程式的参数个数
$$这个程式的PID(脚本运行的当前进程ID号)
$@跟$*类似,但是可以当作数组用

8.shell脚本中字符串变量前加个x

#防止$var为空时报错
x"abcd" = x"$var"

9.read

12
-p给出提示符。默认不支持"n"换行,要换行需要特殊处理
-r禁止反斜线的转义功能.这意味着""会变成文本的一部分
read -p -r "Do you want install?"

10.getopt的使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680227.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号