歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Linux解釋器原理

Linux解釋器原理

日期:2017/3/6 15:26:34   编辑:關於Unix
MI LY: 宋體; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 使用 Shell 進行工作的人們對 Unix / Linux 下的 Shell 編 MILY: 宋體; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 使用Shell進行工作的人們對Unix/Linux下的Shell編程都很熟悉,在所有的Shell編程的書中都會提到#!/bin/bash,而這裡到底包含了些什麼?對操作系統而言,這一行字符串意味著什麼?

轉載--Linux解釋器原理

引言
使用Shell進行工作的人們對Unix/Linux下的Shell編程都很熟悉,在所有的Shell編程的書中都會提到#!/bin/bash,而這裡到底包含了些什麼?對操作系統而言,這一行字符串意味著什麼?你可能會說,不就是會讓/bin/bash程序來解釋這個腳本程序嗎?當然你是對的,看看我們的標題,這裡我們談談解釋器,讓我們一起來看看腳本文件裡的第一句到底對系統而言意味著什麼。但有一點我們可先明確一下,所謂解釋器就是指#!行後面的可執行的程序。

一、我們從exec族函數談起
如果你從不寫C程序,可能需要對本節的內容看得更為仔細並且試驗一下。

代碼:

#include

extern char **environ;

int execl(const char *path, const char *arg, ...);

int execlp(const char *file, const char *arg, ...);

int execle(const char *path, const char *arg , ..., char * const envp[]);

int execv(const char *path, char *const argv[]);

int execvp(const char *file, char *const argv[]);

Copyright © Linux教程網 All Rights Reserved