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
相关推荐
兔C4 小时前
Linux 命令行入门学习资料 day_2
linux·运维·服务器
枕星而眠6 小时前
【数据结构】红黑树入门指南
运维·数据结构·c++·后端
snow@li7 小时前
深入理解内核与操作系统的关系
运维·服务器·microsoft
星融元asterfusion8 小时前
高效网卡部署与自动化运维:EasyRoCE Toolkit NC 配置指南
运维·自动化
prettybug1259 小时前
OBS背景音乐_气氛实战指南
运维·服务器
无足鸟ICT9 小时前
【RHCA+】管道符
linux·运维·服务器
老约家的可汗9 小时前
Linux的库制作和原理
linux·运维·服务器
技术民工之路9 小时前
RAG 在真实业务项目落地全流程(从需求到上线运维)
运维
leoZ2319 小时前
Skill 技能系统完全指南(四):实战 Skill——DevOps 部署
运维·devops
极客先躯9 小时前
高级java每日一道面试题-2026年04月05日-实战篇[Docker]-如何排查容器 OOM 的问题?
java·运维·docker·容器·内存溢出·高级面试