shell学习第二天
来源:互联网 发布:淘宝客服简历模板 编辑:程序博客网 时间:2024/03/28 20:51
脚本位于第一行的#!
当shell执行一个程序时,会要求linux内核启动一个新的进程,以便在该进程里执行所指定的程序.内核知道如何为编译性程序做这件事.但是我们的nusers Shell脚本并非编译性程序;当shell要求内核执行它的时候,内核无法处理,并且回应”not executable format file”,接着会启动一个新的/bin/sh(标准shell)副本来执行该程序.
当系统只有一个shell是,”退回到/bin/sh”的机制很方便.但是现在的linux都拥有好几个shell,因此需要通过一宗方式,告知linux内核用哪个shell来执行所指定的shell及哦啊本.
linux有多个shell带来的好处是有助于执行机制通用化,,让用户得以直接引用任何程序语言解释器,而非只是一个命令shell.
例如:文件开头存在#! /bin/csh 则说明执行的是csh脚本,
相同的,例如我们可以这样引用独立的awk程序:
#! /bin/awk -f
此处是awk程序
shell脚本的第一行通常是#! /bin/sh.如果不这样是不符合标准的,自觉修改这个路径,将其改为符合POSIX标准的shell.
以下是几个初级的陷阱:
1.对#!这一行的长度尽量不要超过64个字符
2.脚本的可移植性取决于是否有完整的路径名称
3.不要在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序.
4.需要知道解释器的完成路径的名称.这样可以规避可移植性的问题,厂商不同,同样的东西可能放在不同的地方
5.一些较久的系统,内核不具备#!的能力,有些shell会自行处理,这些shell对于#!与紧随其后的解释器名称之间是否可以有空白,可能有不同的解释.
查看当前发行版本可以使用的shell:cat /etc/shells
查看系统默认的shell:echo $SHELL:一般情况下是输出/bin/bash.
如果想切换shell的版本,只需要直接输入shell的版本.例如想使用csh,直接输入csh即可,使用exit退出当前shell回到原shell.
- shell学习第二天
- shell学习第二天
- 学习Shell脚本(第二天)
- shell学习第二弹
- shell编程--第二天
- 《Shell脚本学习指南》第二章学习笔记
- linux学习第二节 SHELL脚本语法
- shell基础巩固第二天
- shell脚本学习第二天——变量定义(含字符串变量定义)
- Shell笔记第二天 Find和xargs
- Atom-shell 初接触. 第二天[Mac]
- Linux程序设计-学习笔记-第二章shell程序设计
- Shell编程学习---第二篇:Find命令和xargs
- Linux Unix shell 编程指南学习笔记(第二部分)
- 学习Python第二天
- hibernate学习 第二天
- 学习CRYPTO第二天
- Winpcap学习第二天
- Java小日历
- 小Y学习andrpid点滴记录一:使用adapter小练习
- CentOS 6.x 升级 Git
- Developing for Android, IV: The Rules: Networking
- JSR: Java Specification Requests
- shell学习第二天
- 第十三周项目三-立体类族共有的抽象类
- mac下mysql
- 管金生首次公开谈327事件
- [推荐视频教程]-[Java][传智播客 俄罗斯方法游戏开发 视频教程][avi]
- 15第十四周项目一——小玩文件
- Introduction to RTP Proxy (1)
- Android 优化电池使用时间 ——监控电池电量和充电状态
- 新建了CSDN博客,希望记录我的android学习历程