sh script.sh与./script.sh的差异

这两种方式差异是进程名称的不同,假设有以下内容的脚本:

$ cat script.sh
#!/bin/bash
sleep 4400

sh script.sh执行,它是明确的启动一个sh命令,把脚本名称做参数传递给它,进程名称是sh:

$ pstree  
 ...
 |-sshd-+...
 |      |-sshd---sshd---bash---sh---sleep

而以./script.sh方式执行,操作系统负责脚本加载(execve系统调用),进程名称是脚本名

$ pstree  
 ...
 |-sshd-+...
 |      |-sshd---sshd---bash---script.sh---sleep

发表评论

电子邮件地址不会被公开。 必填项已用*标注