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

Leave a Reply

Your email address will not be published. Required fields are marked *