Linux与Unix shell编程
yuesichiu
目前负责相机功能开发,工作内容主要包括拍照、录像、相册浏览、图像融合等工作
展开
-
高级shell脚本编程之重定向、环境变量、shell函数、echo命令用法
高级shell脚本编程之重定向、环境变量、shell函数shell并不局限于简单地逐行执行命令,更为强大的功能之一是能够创建函数和函数库。希望自定义命令行交互的方式或者自动化文件处理任务。考虑用shell脚本。1、输入和输出重定向STDINSTDOUTSTDERR重定向操作符> -------把STDOUT重定向到一个文件------原创 2012-10-31 20:45:06 · 3049 阅读 · 0 评论 -
shell之图形进度条
在Shell脚本的编写应用中,有时候会需要用到图形界面的案例,比如默认cp拷贝文件为静默模式,无法看到拷贝的进度与百分比。而dialog正是为Shell提供图形界面的工具,该工具可以为Shell脚本提供各式各样的图形界面,今天为大家介绍的是dialog提供的进度条图形功能。dialog指令可以单独执行,各式为dialog --title "Copy" --gauge "files" 6 70转载 2013-01-19 20:46:59 · 1299 阅读 · 0 评论 -
Shell控制流结构编程之测试目录创建结果
#接受一个参数,并用之创建目录,然后参数被传入命令行,重设给变量DIRECTORY,最后测试变量是否为空。#!/bin/shDIRECTORY=$1if [ "$DIRECTORY" = "" ]then echo "Usage:`basename $0` directory to create" >&2 exit 1fiif [ -d $DIRECTORY ]原创 2013-01-20 13:42:51 · 1075 阅读 · 0 评论 -
shell编程之trap
trap可以使你在脚本中捕捉信号,该命令的一般形式为:trap name signal(s)其中,name是被捕捉到信号后所采取的一序列操作。实际生活中,name一般是一个专门用来处理所捕捉到的信号的函数。name需要用双引号引起来,signal就是待捕捉的信号。脚本在捕捉到一个信号后,通常会采取某些行动。最常见的动作包括:1)清除临时文件2)忽略该信号3)询问用户是否终止原创 2013-02-21 21:23:09 · 9170 阅读 · 0 评论 -
Shell中命令行选项和参数的处理
在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。1.直接处理,依次对$1,$2,...,$n进行解析,分别手工处理;2.getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项);3.getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等)。总结:一般小脚本手工处理也转载 2013-02-21 16:11:20 · 1401 阅读 · 0 评论 -
Shell脚本调试技术
一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调翻译 2013-09-05 16:01:27 · 870 阅读 · 0 评论 -
Shell中实现类似于结构体/数组功能的脚本
#!/bin/bash#ST1, ST2,ST3存放字符串,通过数组下标访问数据# Struct {# STRING A# STRING B# STRING C# } Su;ST1="Quannan Jinlong Mujin Nanjing Longyuanba Bitou"ST2="Xiancheng Zheng Cun Zheng Zhe原创 2013-12-10 15:38:23 · 9815 阅读 · 0 评论 -
shell脚本中的进度指示器
在脚本或者程序运行时间较长时,为终端用户提供反馈信息,表示脚本或程序在辛勤工作,是非常重要的。本文将介绍常见的两种进度指示器(一系列原点和一条旋转线)以及一些其他提供进度指示的工具。1. 使用一系列原点来指示进度?123456789101112131415161718#!/bin转载 2013-08-04 13:50:28 · 6740 阅读 · 0 评论 -
Shell的字符串处理
Shell的字符串处理1 得到长度 %x="abcd" #方法一 %expr length $x 4 # 方法二 %echo ${#x} 4 # 方法三 %expr "$x" : ".*" 4 # expr 的帮助 # STRING : REGEXP anchor原创 2014-12-26 13:32:39 · 6942 阅读 · 0 评论 -
shell脚本中判断文件是否存在
之前在编写Shell脚本时,对判断文件是否存在,没有明确区分了相关的参数选项。先看官网说明:Conditional Logic on Files -a file exists. -b file exists and is a block special file. -c file exists and is a character special file. -d fi原创 2016-04-15 14:52:53 · 2390 阅读 · 0 评论 -
Linux 下的dd命令使用详解
一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。3. ibs=bytes:一次读入bytes个字节,即指定一个转载 2013-01-14 22:15:31 · 1699 阅读 · 0 评论 -
/etc/fstab文件解析
有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。 /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /转载 2013-01-14 11:00:09 · 1456 阅读 · 0 评论 -
Shell编程之getopts指定变量取值
有必要在脚本中指定命令行选项取值。getopts提供了一种方式,即在option_string中将一个冒号放在选项后,例如:getopts abcsd: OPTION其中abcs可以不加实际参数值传递,而选项d必须要带参数,变量OPTARG保存该值,变量OPTIND则是保存存储原$*中下一个在处理的元素位置。#!/bin/shALL=falseHELP=falseFILE=原创 2013-01-24 12:59:17 · 1269 阅读 · 0 评论 -
Shell基本编程之条件、迭代流程控制、算术运算
Shell基本编程1、开始脚本编程#!/bin/sh这一行成为shebang行,告诉系统接下来的命令由shell执行#!/bin/shPERSON="Yuesichiu"echo $PERSONecho "what is your name?"read PERSONecho "Hello,$PERSON"变量名一般要大写,"="两旁绝对不能出现空白字符!特殊变量原创 2012-10-30 20:34:57 · 1379 阅读 · 0 评论 -
高级shell脚本编程之函数库、信号与陷进、文件处理、数组、安全性
高级shell脚本编程之函数库、信号与陷进、文件处理、数组、安全性1、函数库 把所有需要用到的函数都放到一个文件中,然后每个脚本的开头包含这个文件。例如:#!/bin/shscope(){local soc=1gblsoc=2echo "local soc in func = $soc"echo "global gblsoc in func = $gblsoc"}原创 2012-11-04 21:23:34 · 1644 阅读 · 1 评论 -
Fedora14中的/etc/profile文件解析
Fedora14中的/etc/profile文件解析分析一下shell脚本之/etc/profile环境变量文件//pathmunge()shell程序中的一个函数,PATH是linux寻找命令的默认路径,$1一般就代表默认路径,例如:在命令行执行source /etc/profile。$2如果是after,表示路径变为$PATH$1pathmunge () { ca原创 2012-12-04 14:54:52 · 2250 阅读 · 0 评论 -
Shell应用编程之开机密码欢迎welcome
Shell应用编程之开机密码欢迎welcome描述:若用户希望锁定对终端的访问,但不想退出并再次登录,则可以编写一个脚本程序实现。当调用该脚本时,知道用户输入正确的密码才能退出。其中:ctrl + u 删除整行 ctrl + b 删除前一个字符 粗体显示字符shell程源序:trap " " 2 3 4stty -echo原创 2012-11-23 11:08:57 · 2380 阅读 · 0 评论 -
yaffs2的补丁文件patch-ker分析
yaffs2的补丁文件patch-ker分析为内核打上yaffs2 补丁(1)将yaffs2代码加入内核这可以通过yaffs2目录下的脚本文件patch-ker.sh来给内核打补丁,用法如下:usage: ./patch-ker.sh c/l kernelpathif c/l is c, then copy. if l then link.这表明,如果c/l是c,则yaff原创 2012-11-25 16:31:15 · 4158 阅读 · 0 评论 -
linux 链接的使用:创建和删除符号连接
linux 链接的使用:创建和删除符号连接1 . 使用方式 :ln [option] source_file dist_file -f 建立时,将同档案名删除. -i 删除前进行询问. ln -s abc cde 建立abc 的软连接转载 2012-12-13 17:44:07 · 991 阅读 · 0 评论 -
Linux中fdisk分区及其自动加载脚本分析
Linux中fdisk分区及其自动加载脚本分析一、fdisk 的介绍; fdisk是磁盘分区表操作工具,是Linux分区工具及命令; fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux、ext2等,以及其实类Unix类操作系统的文件系统等;当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统;这样一个原创 2013-01-05 21:36:35 · 6996 阅读 · 0 评论 -
Shell编程之shift使用
#!/bin/shFILES=""TRCASE=""EXT=""OPT=no#gets called when a conversion failserror_msg(){_FILENAME=$1echo "`basename $0`:Error the conversion failed on $_FILENAME"}if [ $# -eq 0 ]原创 2013-01-23 16:22:09 · 832 阅读 · 0 评论 -
使用命令行 Subversion 访问项目源文件
命令行 Subversion 入门如果您参与的项目正在使用 Subversion 进行版本控制,您将需要使用 Subversion 访问和更改项目源文件。您可以点击项目的左侧导航窗格上的“Subversion”链接,在线浏览源代码以查看该项目的目录结构和文件。“Subversion”页面显示三个子目录:branches/、tags/、trunk/ 和一个自述文件。自述文件可以使您对 Sub转载 2013-01-09 09:26:42 · 632 阅读 · 0 评论 -
CentOS 7之Systemd详解之服务单元设置system.service
英文网址:https://www.freedesktop.org/software/systemd/man/systemd.service.html 名称systemd.service - 服务单元配置概要service.service描述以 .service 结尾的单元文件,用于封装一个被 systemd 监视与控制的进程。本手册只列出专用于此种单元的选...翻译 2016-05-23 21:59:55 · 42709 阅读 · 5 评论