论坛首页 综合技术论坛

跟散仙学shell编程(十三)

浏览 1930 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-08-25  
上篇散仙主要了讲述了gawk进阶的一些用法,本篇我们来了解下载linux中,其他的shell类型,通常情况下,我们最常用的就是bash shell,除此之外,我们还可能遇到另外2个shell类型,dash shell和zsh shell,我们并不需要深入探究,只需要简单了解即可。


dash shell是ash shell的后代因其,并没有多少高级功能,所以并不能作为交互式的shell,而我们一直长常用的熟悉的bash shell,已经默认成为了标准的shell类型。


dash的命令行参数:
-a 导出分配给shell的所有变量
-c 从特定命令字符串读取命令
-e 非交互式情况下,运行失败,则直接退出
-f 显示路径名通配符
-n 非交互式命令下,读取命令但不执行
-u 将错误消息写到STDERR
-v 将输入写到STDERR
-x 在执行命令时将每个命令写出到STDERR
-I 忽略EOF字符,交互式模式下
-i 强制shell运行在交互式模式下
-m 打开作业控制
-s 从STDIN读取命令
-E 打开emacs命令行编辑器
-V 打开vi命令行编辑器

下面看dash的环境变量


CDPATH  cd命令的搜索路径
HISTSIZE 历史记录文件中保存的天数
HOME  用户登录的默认天数
IFS   输入字段分隔符,默认值是空格,制表符,换行符
MAIL  用户收件箱的名称
MAILCHECK 在收件箱中检查新邮件的频率
MAILPATH  冒号分隔多个收件箱的名称
OLDPWD    上一个工作目录的值
PATH   当前可执行的文件的默认查找路径
PPID   当前进程的父进程ID
PSI    shell的主命令行交互提示符
PS2    shell的次命令交互提示符
PS4    当使了执行追踪时,在每行前面打印的一个字符
PWD    当前工作目录的值
TERM   shell的默认终端设置




下面看一些位置参数的符号表示:

$0 shell的名称
$n 第n个位置参数
$* 含有参数内容的单个值
$@ 将所有的命令行参数展开为多个参数
$# 位置参数的总数
$? 最近一个命令的退出状态码
$- 当前选项的标记
$$ 当前shell的进程ID
$! 最近一个后台命令的进程ID


下面看在另外一种shell类型,zsh shell,zsh shell由Paul Falstad开发的一个开源的Uninx shell,它集成了所有现在
现有shell的许多独到的功能,为程序员创建了一个全功能的高级shell,一些功能如下:
(1)改进的shell选项处理
(2)shell兼容性模式
(3)可加载模块
在上面的几个功能里面,可加载模块是设计最先进的功能



zsh shell通常会用在编程环境中,因为它为shell脚本程序员提供了许多好用的功能,它使用可加载的模块来加载单独的代码库
这让使用高级函数跟使用命令行命令一样简单,可加载模块支持很多功能从复杂数学算法到如FTP和HTTP的网络应用、

dash shell作为Debian Linux发行版的一部分发的,主要出现在Ubuntu Linux发行版中,它是Bourne shell的精简版,所以它并不像bash shell一样支持
那么多功能,这可能会给脚本编程带来一些问题


无论使用哪种shell,我们只需要深入了解其中一种即可,其他的都类似,如果可能,了解一下其他shell的功能和用处,对我们的学习也是会有很大的帮助的。

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics