linux---shell---1命令执行


linux---shell---1命令执行
 
1. Shell 如何执行命令
 
1> 执行交互式命令
 
用户在命令行输入命令后, 一般情况下, shell 会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于执行Shell的某个函数, 并不创建进程。如: cd / alias / umask / exit ...
 
2> 执行脚本
 
首先编写一个简单的脚本,保存为script.sh:
 
----------------------------
 
#! /bin/sh
 
cd ..
 
ls
 
----------------------------
 
Shell脚本中,使用#表示注释,但如果#位于第一行的开头,并且是#!(称为Shebang)则例外。他表示该脚本使用后面指定的解释器 /bin/sh解释执行。
 
Shell会fork一个子进程,并调用exec执行./script.sh这个程序。exec系统调用应该把子进程的代码段替换成script.sh程序的代码段,并从他的_start开始执行。然而,script.sh是一个文本文件, 根本没有代码段和_start函数,怎么办呢?其实exec有另外一种机制,如果要执行的是一个文本文件,而且文本文件的第一行是用Shebang制定了解释器,则用解释器的代码段替换当前进程,并且从解释器的_start开始执行,而这个文本文件被当作命令行参数传递给解释器。因此,执行上述脚本相当于执行程序:、
 
$ /bin/sh ./script.sh

相关内容

    暂无相关文章