脚本使用(awk,shell...)

awk打印单引号:

awk '{print " ' /' ' "}'
其中: ' /' '  这三个' 都是单引号

 

方便sql查询用的

awk '{printf("'/''%s'/'',", $0);}' ip.txt

 

sed打印行号

sed -n '/pattern/=' filename)

 

行号用变量替换

sed -n ''$linenum1','$linenum2'p' filename

 

shell 引用和内部整数算术运算

shell可以识别4种不同的引号字符:
 单引号 '
 双引号 "
 反斜杠 /
 反引号 `
1 单引号
shell会保留单引号中的特殊字符。

[pvg@server test]$ echo '$filename'
$filename
[pvg@server test]$ echo 'one two three'
one two three

2 双引号

   双引号和单引号差不多,双引号忽略大多数字符。具体来说,只是美元符号、反引号、反斜杠三种不被忽略。
a)

[pvg@server test]$ x=*
[pvg@server test]$ echo '$x'
$x
[pvg@server test]$ echo "$x"
*
[pvg@server test]$ echo $x
name name2 number test

b) 要赋值给add是单引号或双引号是没有区别的。

[pvg@server test]$ add="39 East 12th Street
> New York, N.Y. 10003"

[pvg@server test]$ echo $add
39 East 12th Street New York, N.Y. 10003
[pvg@server test]$ echo "$add"
39 East 12th Street
New York, N.Y. 10003

3)可以用双引号隐藏shell单引号,反之亦然。

[pvg@server test]$ word="'hello,'he said"
[pvg@server test]$ echo $word
'hello,'he said

3 反斜杠

a)用反斜杠续行

[pvg@server test]$ x=one/
> two
[pvg@server test]$ echo $x
onetwo

b)双引号中的反斜杠
用反斜杠去掉特殊字符的意义。

[pvg@server test]$ x=5
[pvg@server test]$ echo "/$x"
$x
[pvg@server test]$ echo "The Value of x is $x"
The Value of x is 5

4 反引号

用反引号能实现命令替换。命令替换是指shell能够将一个命令的标准输出插在一个命令行中的任意位置的功能。其实现可以通过把shell命令用反引号括起来或$(...)结构。

[pvg@server ~]$ echo The date and time is:`date`
The date and time is:Mon Jan 5 :39:45 EAT 2009
[pvg@server ~]$
[pvg@server ~]$ echo The date and time is:$(date)
The date and time is:Mon Jan 5 16:40:22 EAT 2009

5 内部整数算术运算

    这个内容不知道放到哪里好,暂时放到这里吧!

语法是:$((expression))

[pvg@server ~]$ i=2
[pvg@server ~]$ echo $((i+1))
3

但是较老的shell却不支持内部整数算术操作,所以我们必须用expr命令来替换。expr可以识别常见的操作,包括+(加)、-(减)、*(乘)、/(除)、%(求模)。

[pvg@server ~]$ i=1
[pvg@server ~]$ j=$(expr $i + 1)
[pvg@server ~]$ echo $j
2
[pvg@server ~]$ expr 5 /* 2
10

***注意*** 乘法需要特别注意哦 有符号“/”。

 

Shell 整数变量和字符变量的比较操作

在比较操作上,整数变量和字符串变量各不相同,详见下表:

对应的操作

整数操作

字符串操作

相同

-eq

=

不同

-ne

!=

大于

-gt

>

小于

-lt

<

大于或等于

-ge

 

小于或等于

-le

 

为空

 

-z

不为空

 

-n


比如:

比较字符串 a 和 b 是否相等就写作:if [ $a = $b ]
判断字符串 a 是否为空就写作: if [ -z $a ]
判断整数变量 a 是否大于 b 就写作:if [ $a -gt $b ]

更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。(其中符号 "!" 表示求反操作)

BASH 中的变量除了用于对 整数 和 字符串 进行操作以外,另一个作用是作为文件变量。BASH 是 Linux 操作系统的 Shell,因此系统的文件必然是 BASH 需要操作的重要对象,如 if [ -x /root ] 可以用于判断 /root 目录是否可以被当前用户进入。下表列出了 BASH 中用于判断文件属性的操作符:

运算符

含义( 满足下面要求时返回 TRUE

-e file

文件 file 已经存在

-f file

文件 file 是普通文件

-s file

文件 file 大小不为零

-d file

文件 file 是一个目录

-r file

文件 file 对当前用户可以读取

-w file

文件 file 对当前用户可以写入

-x file

文件 file 对当前用户可以执行

-g file

文件 file GID 标志被设置

-u file

文件 file UID 标志被设置

-O file

文件 file 是属于当前用户的

-G file

文件 file 的组 ID 和当前用户相同

file1 -nt file2

文件 file1 file2 更新

file1 -ot file2

文件 file1 file2 更老


注意:上表中的 file file1 file2 都是指某个文件或目录的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值