02 Shell Script注释和debug

Shell Script注释和debug

一、ShellScript注释

​ # 代表不解释不执行

​ 语法:#

sh 复制代码
# 创建myshell.sh文件
[root@localhost ~]# vi myshell.sh  


# 写入内容
#!/bin/bash

# 打印hello world(正确)
echo "hello world"
echo "hello 2" # 注释2(正确)
echo "hello 3"# 注释3(错误,代码和注释需要空格隔开)


# 查看打印结果
[root@localhost ~]# bash myshell.sh 
hello world
hello 2
hello 3# 注释3

二、ShellScript Debug

sh 复制代码
# 创建myshell.sh文件
[root@localhost ~]# vi myshell.sh  


# 写入内容
#!/bin/bash

# 打印hello world
echo "hello world

​ #bash [-nvx] scripts.sh

​ 选项与参数:

​ -n :不要运行script,仅查询语法的问题;

sh 复制代码
[root@localhost ~]# bash -n myshell.sh
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

​ -v :再运行sccript前,先将整个scripts 的内容输出到屏幕上;

sh 复制代码
[root@localhost ~]# bash -v myshell.sh
#!/bin/bash

# 打印hello world
echo "hello world
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

​ -x :将执行到的script内容显示到屏幕上,这是很有用的参数!

sh 复制代码
[root@localhost ~]# bash -x myshell.sh
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

三、Shell 扩展

​ 使用选项-vx做进一步测试

创建一个脚本文件test.sh

sh 复制代码
# 创建sh文件
[root@localhost ~]# vi myshell.sh 


# 写入内容
#!/bin/bash
mkdir ./{a,b,c}1
echo "ok"


# 查看内容(和实际内容不同)
[root@localhost ~]# bash -x myshell.sh
+ mkdir ./a1 ./b1 ./c1
+ echo ok
ok

​ #bash -vx test.sh

​ -v选项使得脚本中的命令显示出来

​ -x选项显示shell对脚本命令的解释结果,即shell解释器扩展命令字符串的结果

​ 扩展知识:

​ shell扩展:花括号扩展

​ 不能出现在引用中

​ 花括号前后的前缀是可选的

​ 最少出现一个逗号

sh 复制代码
mkdir ./{a,b,c}1

​ shell扩展:变量参数扩展

​ 符号$对使用的bash而言是获取参数变量值的特殊标识

​ 完整写法:${parameter}

sh 复制代码
echo $PATH

​ 通过使用tree命令显示当前目录的属性结构

​ *通过yum install tree -y来安装该命令

sh 复制代码
# 下载tree软件包
[root@localhost ~]# yum -y install tree

# 查看当前目录结构
[root@localhost ~]# tree
.
├── a1
├── b1
├── c1
└── myshell.sh
相关推荐
九章云极AladdinEdu2 分钟前
超参数自动化调优指南:Optuna vs. Ray Tune 对比评测
运维·人工智能·深度学习·ai·自动化·gpu算力
人工智能训练师1 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
Tisfy2 小时前
服务器 - 从一台服务器切换至另一台服务器(损失数十条访客记录)
运维·服务器
qq_264220893 小时前
Nginx优化与 SSL/TLS配置
运维·nginx
Aspiresky4 小时前
浅析Linux进程信号处理机制:基本原理及应用
linux·运维·信号处理
全栈工程师修炼指南5 小时前
告别手动构建!Jenkins 与 Gitlab 完美协作,根据参数自动化触发CI/CD流水线实践
运维·ci/cd·自动化·gitlab·jenkins
ajassi20005 小时前
linux C 语言开发 (八) 进程基础
linux·运维·服务器
matlab的学徒6 小时前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
Insist7536 小时前
prometheus安装部署与alertmanager邮箱告警
linux·运维·grafana·prometheus
xqlily7 小时前
Linux操作系统之Ubuntu
linux·运维·ubuntu