HP-UX学习笔记(第四天)--shell

1.

shift命令:用户把命令行的参数向左移动一个位置,当使用shift命令时,第一个参数被丢弃。shift命令丢弃最左边的变量($1)并把剩余的变量重新指定值,可以在shift操作后,参数值永远丢弃并不能被程序恢复。

可以一步完成多个shift操作,比如shift 3。

2.

read命令:从用户那里取得一行输入并把它指定给一个变量,变量名作为一个参数提供给read命令。

3.

用于echo命令的规避字符:

\a        报警字符

\b        退格

\c        在显示文件的结尾禁止新行

\f         换页

\n        插入一个新的字符行

\r         回车

\t         插入一个TAB字符

\\         反斜线

4.

数字测试:

-eq  等于    -ne   不等于    -lt    小于    -gt    大于    -le   大于或等于     -ge     大于或等于

5.

字符串测试:

string1 = string2              如果string1等于string2为真

string1 != string2             如果string1不等于string2为真

-z string                           如果string的长度是零为真

-n string                          如果string的长度不是零为真

string                               同上

6.

文件测试:

-d file                               如果一个文件是一个目录为真

-f file                                如果文件存在并且是一个正常文件为真

-L file                               如果一个文件是符号链接为真

-s file                               如果一个文件长度大于0字节为真

-r file                               如果一个文件是可读为真

-w file                               如果一个文件是可写为真

-x file                               如果一个文件是可执行为真

-e file                               如果一个文件存在为真

file1 -nt  file2                    如果file1比file2新为真

file1 -ot  file2                    与上面相反

7.

逻辑操作符:

expr1 -o expr2               逻辑或,如expr1或expr2其中一真即为真

expr1 -a expr2               逻辑或,如expr1与expr2都真即为真

!expr                              逻辑非,非之即真

8.

调试程序时,可以把程序第一行#!/usr/bin/sh后面加上-x,当你执行这个程序时,它在执行前把每一行显示在终端屏幕上,在程序中真正的行在它的开头显示一个+号,后面跟着它的输出,注释信息不显示。

9.

如果一个shell程序中没有提供shell名,程序可能被一个错误的shell执行,由于每种shell有不同的控制结构,执行不会成功。

10.

test命令的真返回值是0

11.

编写时需注意:if空格[空格"$1"空格=空格"$2"空格]

12.

for-do-done:以固定次数执行一个命令块

while-do-done:循环检查一个条件并执行一个程序块直到条件变成假

until-do-done:循环重复执行一个命令块直到一个条件为真,循环中止

let命令用户在循环中做算术,逻辑和赋值操作并改变控制变量的值。

显式表达:let "var1">"var2"

隐式表达:((var1>var2))

13.

使用sed流编辑器,从stdin得到文本并编辑后发送到stdout

sed s/echo/ECHO/g myfile

将当前目录中的所有文件中的echo替换成ECHO

shell例子:

#!/usr/bin/sh

for FILE in *

do

      cat $FILE | sed s/echo/ECHO/g >tempfile

      cp tempfile $FILE

done

rm tempfile

在使用sed替换的时候,如果有替换内容是目录,可以使用:来分隔,比如想将/etc/passwd里面的/usr/bin/sh替换为/usr/sh:

sed s:/usr/bin/sh:/usr/sh:g /etc/passwd

http://moko39848381.blog.163.com/blog/static/139827331201031810103953/

14.

使用cut:从一行文本中提取数据的特定部分

cut -f 1 -d : /etc/passwd

-f 1选项告诉这个命令你想提取的字段号是1,-d :选项里显示数据中的字段使用:分隔

cut -c 1-8               #提取每行前8个字符

shell例子:

#!/usr/bin/sh

for USER in $(cut -f 1 -d : /etc/passwd)

do

        mailx -s "Test mail" $USER<mailfile

done

用cut创建一个用户名列表并给列表中一个名字发送一个mail消息

cut用法:http://moko39848381.blog.163.com/blog/static/139827331201031892527196/

15.

使用sleep命令用户把执行挂起一段特定的时间

for FILE in *

do

          ll $FILE

          sleep 5

done

列出当前目录下的所有文件并在每个文件之间暂停5秒

 16.

输出制表符:

a=1

b=2

c=3

HP-UX::echo "$a\t$b"

reahat:echo -e "$a\t$b" 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值