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 "了.
希望可以帮到题主, 欢迎追问.
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、任意打开一个文件夹,选择左上角的【编辑】->【首选项】
选择【打开可执行文本文件时运行它们】即可实现双击运行。
参考:
以上是关于linux sh -n 文件 运行后两个加号++ 啥意思?的主要内容,如果未能解决你的问题,请参考以下文章