随笔分类 - Shell编程

摘要:很多人误以为shell脚本只能在命令行下使用。其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等。你可以控制最终的输出,光标位 置还有各种输出效果。下面我将介绍一些工具,帮助你创建强大的,互动的,用户友好的 Unix/Linux shell脚本。我在FreeBSD和Linux下测试过这些工具,不过其他UNIX系列的操作系统应该都支持的。 1. notify-send 命令 这个命令可以让你通过通知进程发送一个桌面通知给用户。这可以用来向用户发送提示,或者显示一些信息而不用打断用户工作。你需要安装如下软件包: $ sudo apt-get install ... 阅读全文
posted @ 2012-05-08 14:23 Mr.Rico 阅读 (279) | 评论 (0) 编辑
摘要:echo $SHLVL 该变量包含当前工作的shell level $* 所有参数列表受IFS控制 PS1为提示符,可进行设置PS1="[\u@\h\W]\$"PS2为换行时的那个符号如aa'换行后默认会出现>我们可以进行修改PS2=''换成你喜欢的IFS为变量的分隔符,默认是空格 表格 B-1. 特殊的shell变量 变量含义 $0 shell或shell脚本的名字 $1 位置参数 #1 $2 - $9 位置参数 #2 - #9 ${10} 位置参数 #10 $# 位置参数的个数 "$*" 所有的位置参数(整体作为单个字符 阅读全文
posted @ 2012-02-02 22:15 Mr.Rico 阅读 (3630) | 评论 (0) 编辑
摘要:这是从网上看到了一个关于介绍shell编程的介绍, 觉得写的不错, 内容不是很多, 但是讲的都在点上.Linux的shell编程Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交 互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是 最重要的实用程序,深入了解和熟练掌握she 阅读全文
posted @ 2011-11-17 00:59 Mr.Rico 阅读 (212) | 评论 (0) 编辑
摘要:cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出。截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取指定的fields。cut命令有5个参数,其中-c,-b,-f分别表示"character", "byte"以及"field"截取方式。当采用field模式截取时,需要用"-d"参数指定一个分隔符,分割符只能为单个字符。另外还有一个"-s",suppress,表示如果行中没有给出的分割符则不输出该行(默认为如果没 阅读全文
posted @ 2011-10-13 00:14 Mr.Rico 阅读 (3668) | 评论 (0) 编辑
摘要:fork 使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process, 但 parent process 的环境是不会因 child process 的改变而改变的.source 使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不 是产生一个 child process 来执行. 由于所有执行结果均于当前 process 内完成, 若 script 的环境 阅读全文
posted @ 2011-10-13 00:11 Mr.Rico 阅读 (576) | 评论 (0) 编辑
摘要:unix shell的变量分类在Shell中有三种变量:内部变量,环境变量,用户变量。内部变量:系统提供,不用定义,不能修改环境变量:系统提供,不用定义,可以修改,可以利用export将用户变量转为环境变量.用户变量:用户定义,可以修改(1)内部变量(系统变量,环境变量,参数变量,预定义变量)内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。 表示方法 描述 $n $1 表示第一个参数,$2 表示第二个参数 ... $# 命令行参数的个数 $0 当前程序的名称 $? 前一个命令或函数的返回码 $* 以"参数1 . 阅读全文
posted @ 2011-10-13 00:10 Mr.Rico 阅读 (499) | 评论 (0) 编辑
摘要:DOS/Windows和Linux/Unix的文件换行回车格式不同,基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行。1)把Dos/Windows下的文件移至Linux/Unix系统虽然很多程序不在乎 DOS/Windows 格式的 CR/LF 文本文件,但是有几个程序却在乎 -- 最著名的是 bash,只要一遇到回车,它就会出问题。以下 sed 调用将把 DOS/Windows 格式的文本转换成可信赖的 UNIX 格式:$ sed -e 's/.$//' mydos.txt > myunix.txt 阅读全文
posted @ 2011-08-24 10:05 Mr.Rico 阅读 (186) | 评论 (0) 编辑