当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 探讨 ebuild 系统Daniel Robbins总裁兼 CEO, Gentoo Technologies, Inc.2000 年 5 月 Daniel Robbins 在其最后一篇 Bash实例文章中详细讲述了 Gentoo Linux ebuild 系统,这个展示 bash能力的极佳范例。
 

 

 ·创建能够超时的socket连结api    »显示摘要«
    摘要:在socket编程中调用connect函数连接一远程机器,如果该ip不存在的话,connect将在一段时间内返回-1表示失败。问题是有时候我们需要准确控制connect函数连接的时间,这就需要我们能够控制这个connect函数。但是,gcc给我们提供的api没有这个功能。我自己设计了一个这样的api函数--connect2,它能够在用户设置的一段时间后,连接超时退出。 这个connect2的初步设......
 ·修改grub的显示标题    »显示摘要«
    摘要:如果由grub来引导多个系统,我们可以改变grub的配置文件,使引导的显示单词改成自己喜欢的语句.su到root, 更改/boot/grub/grub.conf文件,将文件中title后面的单词换成你喜欢的就可以了.我的如下:title red hat linux (2.4.20-8),good day, happy workingroot (hd0,5)kernel /boot/vmlinuz-......


Bash 实例,第 3 部分
上一页   ...要做到这点,进入有写权限的目录,然后输入:

【程序编程相关:dhcp server

将 sed 解压缩到临时目录 【推荐阅读:让Debian不长一点赘肉

将 sed 解压缩到临时目录 【扩展信息:oracle入门知识

$ mkdir work $ cd work $ tar xzf /usr/src/distfiles/sed-3.02.tar.gz

然后,解压缩 tar 压缩包,创建一个包含所有源代码.名为 sed-3.02 的目录.以后将使用环境变量 "$srcdir" 引用 sed-3.02 目录.要编译程序,输入:

$ cd sed-3.02 $ ./configure --prefix=/usr (autoconf 生成适当的 make 文件,这要花一些时间) $ make (从源代码编译包,也要花一点时间)

因为在本文中只讲述解包与编译步骤,所以将略过 "make install" 步骤.如果要编写 bash 脚本来执行所有这些步骤,则代码可能类似于:

要执行解包/编译过程的样本 bash 脚本

#!/usr/bin/env bash if [ -d work ] then # remove old work directory if it exists rm -rf work fi mkdir work cd work tar xzf /usr/src/distfiles/sed-3.02.tar.gz cd sed-3.02 ./configure --prefix=/usr make

使代码通用

虽然可以使用这个自动编译脚本,但它不是很灵活.基本上,bash 脚本只包含在命令行输入的所有命令列表.虽然可以使用这种解决方案,但是,最好做一个只通过更改几行就可以快速解包与编译任何包的适用脚本.这样,包维护人员将新包添加到发行版所需的工作就大为减少.让我们先尝试一下使用许多不同的环境变量来完成,使构建脚本更加适用:

新的.更通用的脚本

#!/usr/bin/env bash # p is the package name p=sed-3.02 # a is the archive name a=$.tar.gz export origdir=`pwd` export workdir=$/work export srcdir=$/$ if [ -z "$distdir" ] then # set distdir to /usr/src/distfiles if not already set distdir=/usr/src/distfiles fi export distdir if [ -d $ ] then # remove old work directory if it exists rm -rf $ fi mkdir $ cd $ tar xzf $/$ cd $ ./configure --prefix=/usr make

已经向代码中添加了很多环境变量,但是,它基本上还是执行同一功能.但是,如果现在要要编译任何标准的 gnu 基于 autoconf 的源代码 tar 压缩包,只需简单地将该文件复制到一个新文件(用合适的名称来反映它所编译的新包名),然后将 "$a" 与 "$p" 的值更改成新值即可.所有其它环境变量都自动调整成正确设置,并且脚本按预想工作.虽然这很方便,但是代码还有改进余地.这段代码比我们开始创建的 "transcript" 脚本要长很多.
...   下一页

 ·用户帐号管理    »显示摘要«
    摘要:1、用户帐号数据文件—— /etc/passwd 和 /etc/shadow)^(/7i1b:在进行用户帐号管理前,必须具备与 root 同一等级的权限帐号(也就是与 root 属于同一组的所有成员)。root 是 linux 中权限最高的帐号,它可以在系统中执行任何的设置。因此,除非必要,应该尽量避免使用 root 帐号登陆系统,最好的方式是以一般的用户帐号登陆,然后再用 su - 命令来变更管......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE