博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell脚本笔记(一)一些零碎的基础知识
阅读量:4315 次
发布时间:2019-06-06

本文共 1236 字,大约阅读时间需要 4 分钟。

一些零碎的基础知识

一、认识Shell脚本

一)相关概念

Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序。

Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务。

查看系统默认Shell:

#方法一:echo $SHELL#方法二:grep root /etc/passwd

二)开发规范

1)脚本第一行指定解释器

#!/bin/bash

2)开头添加版本、版权等信息

3)脚本中尽量不要用中文

4)扩展名为.sh

5)脚本应放在固定路径下

三)执行方法

1)bash script-name或者sh script-name: 脚本没有x权限或者脚本开头没有指定解释器时,可用此方法,此方法也是常见的方法。

2)path/script-name:当前路径下执行脚本,脚本要有x权限。

3)source script-name 或者 . script-name:在当前shell中直接运行脚本(其他方式会开启新的shell),因此可将该脚本中的变量或者函数传递到当前shell中。

四)重定向和管道

1)输出重定向

将命令的输出发送到一个文件中(每次都会新创建文件):

ls -al > list.txt

如果不想每次都新建文件,可以追加:

date >> list.txt

2)输入重定向

将文件内容发送给命令,当做相关参数:

ls -al < in.txt

内联输入重定向:

无需文件中的数据,将标记中的数据重定向给命令,其语法格式为:

command << MARKERdataMARKER

3)管道

使用管道将一个命令的输出当做另一个命令的输入,其语法格式为:

command1 | command2

五)脚本调试

1)用bash命令参数调试

sh [-nvx] script.sh

-n:不执行脚本,仅检查脚本语法,并给出错误提示

-v:执行脚本前,先将脚本内容输出到屏幕上,并给出错误提示

-x:将脚本内容及输出显示到屏幕上,逐行追踪脚本执行

 

2)使用set命令进行调试

与bash命令相比set命令可以控制追踪范围

set -n:读命令但不执行

set -v:显示读取的所有行

set -x:显示所有的命令及其参数

# !/bin/bashecho 1set -x         #开启脚本调试echo 2echo 3echo 4set +x         #关闭脚本调试exit 0

运行结果:

1+ echo 22+ echo 33+ echo 44+ set +x

 

六)其他

执行多个命令:

放在同一行用分号隔开

ls ; date ; who

命令替换:

从命令输出中提取信息,并将其赋值给变量。

方法一:

d=$(date)

方法二:

d=`date`

 

转载于:https://www.cnblogs.com/Shadowplay/p/8309717.html

你可能感兴趣的文章
Unity中用触摸控制物体旋转和放大
查看>>
hibernate
查看>>
appium环境安装
查看>>
uva 10859
查看>>
ssm整合-动态项目-day13
查看>>
Visual Studio Debug
查看>>
Souerce 之 图片格式
查看>>
PD 之 连接数据库并导出数据及生成PDM文件
查看>>
Java&nbsp;IO&nbsp;操作
查看>>
SharePoint 2010 Warmup server script
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
[UOJ UR#16]破坏发射台
查看>>
修改spring boot 启动logo
查看>>
《Android深度探索》第六章心得体会
查看>>
jQuery绑定键盘事件
查看>>
java中的for嵌套(一个好例子)
查看>>
MathML
查看>>
SQL 排名函数
查看>>