linux sh -n 文件 运行后两个加号++ 什么意思?

linux sh -n 文件 运行后两个加号++ 什么意思?,第1张

题主你好,

先讲个题外话, 我们在执行脚本时, 有些命令是在当前shell中被执行的, 有些命令需要fork()当前shell得到一个子shell,然后在子shell中执行相应的命令.

回到正题, 在对shell脚本调试时, 每条被跟踪执行的语句前面都至少有一个+, 你可以理解为, 如果在语句前只看到了1个" + "号, 表示该条语句是在你执行脚本的那个shell中被运行的如果你在语句前看到了2个" + "号, 则表示,该条语句是从你运行脚本的shell中fork()得到一个新的子shell,然后在这个子shell中运行的当然这个" + "号的数量不只2个, 理论上可以有无数个, 下面给你举个前面有3个" + "号的例子:

上面语句, 从左到右的echo分别在当前shell中执行, 子shell中执行,孙shell中执行

写在最后: " + "号其实读取的是linux中变量PS4的值:

所以我们可以自己改变变量PS4的值, 然后去调试shell脚本,就会看到每个被追踪语句的开头显示的都是我们自定义的符号了:

可以看到, 除了我们设置变量PS4的语句使用的是系统默认的PS4变量值" + ", 之后被追踪执行的语句开头已经变成了我们自定义的符号" 6 "了.

希望可以帮到题主, 欢迎追问.

linxu下�š.sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!

一、Linux中的sh命令的详细解释

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法

bash [options] [file]

选项

-c string:命令从-c后的字符串读取。

-i:实现脚本交互。

-n:进行shell脚本的语法检查。

-x:实现shell脚本逐条语句的跟踪。

二、Linux中的sh命令的具体例子

使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh

+ DEFINE=30

+ cat /var/log/secure

+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'

++ cat /root/satools/black.txt

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk -F= '{print $1}' + IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk -F= '{print $2}'

+ NUM=1427

+ '[' 1427 -gt 30 ']'

+ grep 121.42.0.16 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk -F= '{print $1}'

+ IP=121.42.0.72

++ awk -F= '{print $2}'

++ echo 121.42.0.72=276

+ NUM=276 + '[' 276 -gt 30 ']'

+ grep 121.42.0.72 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中对.sh文件的操作命令

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

3、保存退出

敲击esc, 然后输入 :wq ,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod +x test.sh

5、运行文件

(1)./test.sh

(2)sh test.sh

6、删除文件

rm test.sh


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6223749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存