Linux下shell脚本符号和语法详解
来源:互联网 发布:服务贸易数据包括哪些 编辑:程序博客网 时间:2024/05/16 14:19
身为一个程序员,你必须得知道这些:
1、从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。2、shell是一种解释性语言,不同于C/C++之类的编译型语言
用户事先写一 个Shell脚本 (Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲 命令。
Shell脚 本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译
Shell 程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一 行敲到 Shell提示符下执行。
3、shell脚本不一定要以 .sh结尾但是最好以.sh结尾
4、shell脚本 第一行“#!”(这玩意叫shebang)开头,后面跟上解释器 ;例:#!/bin/bash 解释器有很多,都在在/etc/shells下
5、运行shell脚本要加上可执行权限
chmod +x script.sh ./script.sh
shell语言 或者说 命令行命令 如何执行?
首先检查用户输入的命令是否是内置命令的名字,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程。
内置命令属于shell的一部分(内置在系统中)。如果是内置命 令名称,那么shell将其作为调用进程的一部分执行,也就是说shell并不会创建新的进程执行内置命令。shell并不需要在文件结构中搜索内置命令程序,这是因为shell可以立即访问它们.
常见的内置命令: cd export alias、 umask、exit
如果用户输入的命令不是内置命令,shell将使用PATH变量作为指南,搜索目录结构,以查找用户想要的程序。如果shell找到这个程序,那么它将创建一个新的进程以执行这个程序。如果没找到就会报错.
Shell会fork一个子进程并调用exec执⾏行./script.sh这个程序,exec系统调用应该把子进程的代码 段替换成./script.sh程序的代码段,并从它的_start开始执行。然而script.sh是个文本文件,根 本 没有代码段和_start函数,怎么办呢?
其实exec还有另外一种机制,如果要执行的是一个文本文 件,并且第一行用Shebang 指定了解释器,
则用解释器程序的代码段替换当前进程,并且从解释 器 的_start开始执行,而这个文本文件被当作命令行参数传给解释器。
因此,执行上述脚本相 于执行程序.
- Linux下shell脚本符号和语法详解
- shell 脚本-符号-基础语法
- linux 下的Shell 脚本书写语法
- linux shell脚本 case和if语法
- linux shell `符号详解
- Linux脚本编程/shell语法和shell进度条的编写
- shell脚本基本语法详解
- linux shell 语法详解
- 【脚本】linux shell awk 语法
- Linux shell 脚本语法总结
- linux中的shell脚本语法
- 【Linux】中的shell脚本语法篇之函数和数组
- 【Linux-shell】shell脚本基础语法练习
- linux下shell脚本
- Linux中Shell脚本的符号说明
- Linux--shell脚本编程之符号篇
- 【Linux】中shell脚本之符号篇
- rhel下shell脚本的语法总结
- Android开发使用华为手机调试logcat没有应用输出信息
- HDU-2016
- C语言中如何输出一些特殊的字符
- windows下定时任务at示例
- CodeForces-492E Vanya and Field(思维题/最小公倍数)
- Linux下shell脚本符号和语法详解
- codeforces-55D-Beautiful numbers(数位DP)
- 周记<From 2016/8/17 to 2016/8/23>
- [noip2001pj] 装箱问题
- java_web用户的自动登录模块的实现
- Android中使用Handler造成内存泄露的分析和解决
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
- 读写文件相关操作
- 编程珠玑第二章习题2.6(1-4)