sh myscript
和source myscript
是两种不同的方式来执行脚本文件。
sh myscript
命令执行脚本时,$0
表示的是当前脚本的文件名。这是因为sh
命令是一个独立的进程,它会将脚本文件作为参数传递给自己,因此$0
会被设置为脚本文件的名称。source myscript
或者.
命令执行脚本时,$0
表示的是当前shell的名称。这是因为source
命令是在当前shell环境下执行脚本,而不是启动一个新的进程。因此,$0
会被设置为当前shell的名称。这两种方式的不同导致了$0
的取值不同。在实际应用中,可以根据需要选择使用sh
命令或者source
命令来执行脚本,具体取决于是否需要在当前shell环境中执行脚本所做的修改生效。
领取专属 10元无门槛券
手把手带您无忧上云