linux---shell---1命令执行
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
评论暂时关闭