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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux sh -n 文件 运行后两个加号++ 啥意思?相关的知识,希望对你有一定的参考价值。

linux

题主你好,

先讲个题外话, 我们在执行脚本时, 有些命令是在当前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 "了.

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

参考技术A + 代表层级,两个 + 代表第二层级。第一层是主循环,第二层循环里面执行的内容。如果循环里面还有循环,里面的循环执行的内容应该有三个+

Linux下sh文件运行及桌面环境双击运行sh文件

sh文件运行:

1、修改为可执行权限:

chmod u+x hello.sh

2、运行

./hello.sh

3、不使用可执行权限修改,用sh直接运行

sh ./hello.sh

桌面环境双击运行sh文件:

Mac:

1、修改后缀sh变成command:hello.sh->hello.command

2、修改可执行权限:chmod u+x hello.command

Ubuntu:

1、修改可执行权限:chmod u+x hello.sh

2、任意打开一个文件夹,选择左上角的【编辑】->【首选项】

选择【打开可执行文本文件时运行它们】即可实现双击运行。

 

参考:

http://blog.csdn.net/lipeiran1987/article/details/18406535

http://www.cnblogs.com/jackchiang/p/4676984.html

以上是关于linux sh -n 文件 运行后两个加号++ 啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Linux下面如何运行.sh文件

linux运行sh脚本出现/r

编写Linux中sh文件执行时出现莫名字符的问题

Linux下制作bin可执行文件

linux下bin安装升级包制作

如何在linux下安装soapUI