Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > BLP ch2:shell编程
【标  题】:BLP ch2:shell编程
【关键字】:BLP,ch2,shell
【来  源】:http://www.cublog.cn/u/16651/showart.php?id=255252

BLP ch2:shell编程

Your Ad Here shell 是你和linux系统之间的接口. 当然X Windows也是一个接口.

BASH 是linux缺省安装的shell. /bin/sh实际上是/bin/bash的链接.

查看版本使用命令 /bin/sh -version

管道和重定向

重定向输出
重定向输出用>操作符
ls -l > a.txt
ps >> b.txt 是在现有文件后面追加.

重定向输入
重定向输入用<操作符

管道
管道用操作符|
ps|sort|more

shell脚本有两种执行方式:
1. >/bin/sh shell_file

2. 把一个shell脚本转变成可执行的
   chmod +x shell_file


shell的语法
❑ Variables: strings, numbers, environments, and parameters
❑ Conditions: shell Booleans
❑ Program control: if, elif, for, while, until, case
❑ Lists
❑ Functions
❑ Commands built into the shell
❑ Getting the result of a command
❑ Here documents

Variables

变量在使用之前无需声明类型.
所有变量均被认为是字符串类型.
自定义的变量名通常全部小写.
赋值符号两边不得有空格.
取变量的值应在变量名前加上$.

例子:
$ salutation=7+5
$ echo $salutation
7+5
$ salutation=Hello
$ echo $salutation
Hello

如果变量的值中间有空格,两侧必须用双引号括括起来.
例子:
$ salutation=”Yes Dear”
$ echo $salutation
Yes Dear

shell脚本执行之前,有几个环境变量会初始化

$HOME         当前用户的主目录
$PATH         搜索路径 
$IFS          shell脚本里接收输入的分隔符
$0            shell脚本的名字
$1, $2, ...   传递给shell脚本的单个参数.
$*            传递给shell脚本的全部参数的列表(用$IFS的第一个字母分隔).
$#            传递给shell脚本的参数个数
$$            shell脚本的进程ID

Conditions
条件结构:

if <条件>
then
    <语句1>
else
    <语句2>
fi

字符串条件
-n string                  字符串不为空
-z string                  字符串为空
string1 = string2          字符串相同
string1 != string2         字符串不相同           

算术比较
expression1 -eq expression2   表达式相等
expression1 -ne expression2   表达式不相等
expression1 -gt expression2   前者大于后者
expression1 -ge expression2   前者大于或等于后者
expression1 -lt expression2   前者小于后者
expression1 -le expression2   前者小于或等于后者
! expression                  表达式为false

文件条件
-d file      文件是一个目录
-e file      文件存在
-f file      文件是一个正则文件
-g file      文件属于某个组
-r file      文件可读
-s file      文件尺寸非零
-u file      文件属于某个用户
-w file      文件可写
-x file      文件可执行




valgrind:【上一篇】
装了一个LFS:【下一篇】
【相关文章】
  • Linux下在shell中启动gnome-terminal来运行程序
  • java 调用 shell 脚本
  • java 调用 shell 得到返回值
  • java 调用 shell 得到返回值(二)
  • 深入浅出Shell 编程:Unix/Linux 命令
  • ASP.NET木马及Webshell安全解决方案
  • IronPython整合Windows PowerShell
  • Linux下使用shell改文件内容
  • Switch2126基于端口的VLAN配置
  • 写Shell了
  • 【随机文章】
  • nfs服務器指令
  • SQL循序渐进(24)嵌入SQL
  • ASP.NET 2.0 中的窗体身份验证详解
  • 这个程序有点色~
  • Statspack安装配置使用说明
  • C语言运算符表
  • Spring从菜鸟到高手(三)依赖注入
  • 关于N皇后问题高效试探回溯算法的分析
  • ASP:学习代码
  • 鸟哥教简易SAMBA服务设定(续)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.