linux脚本echo off,写一个简易的shell脚本(一)

如果经常操作linux 或者配置文件的话以及平时开发和处理文本文件等,会有很多的重复工作,这时如果有一个简易的shell脚本,会大大提升工作的效率,因此我查阅了了一些资料,下载了shell脚本学习指南,大抵了解怎么去写一个简易的脚本,写一个脚本前,有些基本知识还是需要了解的。在这里与大家分享。

①shell脚本通常一开始都是#! /bin/sh  注:/bin/sh 是 c shell的命令解释器。详细了解参阅学习指南。

② shell 中的特殊符号

~:主目录,相当于$HOME

`:命令替换

#:shell脚本中的注释

$:变量表达式符号

&:后台作业,将此符号置于命令末端,则让命令于后台运行

*:字符串的通配符

(:启动子shell

):停止子shell

\: 转义一下字符

|:管道

[:开始字符集通配符号

]:结束字符集通配符号

{:开始命令块

}:结束命令块

;:shell命令分隔符

‘:强引用

“:弱引用

>:输出重定向

/:路径名目录分割符

?:单个任意字符

!:管道行逻辑NOT

③ shell识别三种基本命令

内建命令,shell函数,以及外部命令;

内建命令:shell本身所执行的命令,例如 cd,read,test,echo,printf

shell函数:以shell语言写成,可以像命令那样引用。

外部命令:由shell的副本(新的进程)所执行的命令。

④基本命令符:

1>变量:  name= “my name ”  或name=name 注:有空格需加双引号

2>输出: echo &name 输出变量

3>echo name 输出内容

常用 echo -c 忽略最后一个字符。 -n 换行 -f清屏 等

4>printf: 模仿于c语言的printf()  \n 换行  %s 参数的输出。

5>cat:未指定任何参数,读取标准输入,写入标准输出。

带有最常用选项的tr命令格式为:(linux 命令复习)

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file

这里:

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

-d 删除字符串1中所有输入字符。

-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

6>重定向与管道

例vi file.txt   "a bc";

tr -d 'a' < file.txt

以>改变标准输入

cat file.txt | tr -d 'a' > new_file.txt

以>> 附加文件

program >>file.txt 可将program的标准输出附加到File的结尾处

如果目标文件不存在,>>重定向符会重新建一个。如果存在,不会覆盖文件,附加到结尾处。

以 | 建立管道

p1 | p2 可将p1的标准输出修改为p2的标准输入。

例tr -d 'a' new_file.txt (sort排序 )

sort用法 详见:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html

7> 特殊文件

/dev/null 位桶 传送到此的文件会被丢掉

/dev/tty

8>简单的执行跟踪

set -x 打开跟踪功能   set+x 关闭跟踪功能

⑤文本处理工具

1> uniq

-c 在每个输出行之前加上该行重复的次数

-d 显示重复的行

-u 显示未重复的行

例:JordandeMac-mini:~ jordan$ sort uniq.txt

chun

fan

ning

ning

sun

JordandeMac-mini:~ jordan$ sort uniq.txt | uniq -c

1 chun

1 fan

2 ning

1 sun

JordandeMac-mini:~ jordan$ sort uniq.txt | uniq -u

chun

fan

sun

2> fmt 格式化段落

fmt -s 切割较长的行

fmt -w n 设置输出行宽为n个字符(默认75)

例:fmt 可以将字母分割,但是不能出现字符,出现符符号则会如下

JordandeMac-mini:~ jordan$ fmt -w 1 fmt.txt (有符号)

my

name

is

ninghcunsun,I

like

playing

games

in

my

spare

time.I

enjoy

this

life.

JordandeMac-mini:~ jordan$ fmt -w 1 fmt.txt 没有符号

my

name

is

ninghcunsun

I

like

playing

games

in

my

spare

time

I

enjoy

this

life.

3>sed命令大全 (非常重要)

http://man.linuxde.net/sed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值