随笔分类 - Shell编程

摘要:#!/bin/bash# array-ops.sh: 数组更多有趣的用法.array=( zero one two three four five )# 元素 0 1 2 3 4 5echo ${array[0]} # zeroecho ${array:0} # zero# 第一个元素的参数扩展,#... 阅读全文
posted @ 2013-06-23 11:24 Mr.Rico 阅读 (475) | 评论 (0) 编辑
posted @ 2012-04-14 11:46 Mr.Rico 阅读 (118) | 评论 (0) 编辑
posted @ 2012-04-14 11:41 Mr.Rico 阅读 (120) | 评论 (0) 编辑
摘要:利用mplayer中的mencoder来将y4m文件转换为yuv文件。YUV4MPEG2这种文件格式是一种以头文件存储视频规格的未压缩视频序列。简单来说,在原始的yuv序列的起始和每一帧的头部都加入了纯文字形式的视频参数信息,包括分辨率、帧率、逐行/隔行扫描方式、高宽比(aspect ratio),以及每一帧起始的"FRAME "标志位。(1)利用mencoder可以将y4m转换为yuv文件:mencoder **.y4m -ovc raw -of rawvideo -vf format=i420 -o **.yuv(2)mplayer 播放yuv和264文件.yuv:mp 阅读全文
posted @ 2012-03-26 15:44 Mr.Rico 阅读 (1190) | 评论 (0) 编辑
摘要:1. 将当前目录下的文件去除后缀名".sh" for i in `ls .`do mv -v $i `echo ${i%%.sh}`done2.shell中在列文件目录时防止带空格的文件名被显示成2个文件带空格的文件名变量不被当成两个参数 ls -1 目录路径 | while read linedoecho $linedone解释:ls后面的-1是用来让文件每行只显示一个,然后我们依次读取这些行,这样就能把指定目录下的文件依次赋给变量$line,然后使用变量$line就行了。其他情况下对于带有空格情况的处理方式就是对变量加上双引号:如 rm -r "$a" 阅读全文
posted @ 2012-02-02 22:25 Mr.Rico 阅读 (665) | 评论 (0) 编辑
摘要:Shell识别三种基本命令:内建命令、Shell函数以及外部命令:(1)内建命令就是由Shell本身所执行的命令。 有些命令是由于其必要性才内建的,例如cd用来改变目录,read会将来自用户(和文件)的输入数据传给Shell外亮。 另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.(2)Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。(3)外部命令就是由Shell副本(新的进程)所执行的命令,基本的过程如下: a. 建立一个新的进程。此进程即为Shell的一个副本。 b 阅读全文
posted @ 2011-10-13 00:15 Mr.Rico 阅读 (5567) | 评论 (0) 编辑
摘要:Shell中的括号有其特殊的用法, 现总结如下:1. 符号$后的括号${a} 变量a的值, 在不引起歧义的情况下可以省略大括号.$(cmd) 命令替换, 结果为shell命令cmd的输出, 和`cmd`效果相同, 不过某些Shell版本不支持$()形式的命令替换, 如tcsh.$((exp)) 和`expr exp`效果相同, 计算数学表达式exp的数值, 其中exp只要符合C语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算.2. 多条命令执行(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没 阅读全文
posted @ 2011-10-13 00:09 Mr.Rico 阅读 (4147) | 评论 (0) 编辑