码迷,mamicode.com
首页 > 系统相关 > 详细

shell常见命令总结(二)

时间:2017-12-15 23:39:55      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:过程   结果   dir   转义   class   否则   格式   log   margin   

1.1. shell的数据类型

  shell的数据类型是动态的数据类型。即不需要事先定义,而可以直接使用。使用过程中,能随时变换类型。比如 awk {‘print $1’}  /opt/test.txt  从文本文件中打印从第一列,然后可以直接用$1进行算数比较运算。

b=grep “8-7-112-132” /opt/

b就是一个list类型。可以使用 for i in b

1.2. 其他常用命令

1.2.1. tr单个字符替换

只能用一个字符替换另一个字符,如 a=`echo $IP|tr ‘.’ ‘_’`,把IP地址中的点换成下划线。

echo $file|tr ‘ ’ ‘\n’   #将文件中所有的空格换成换行

echo $file|tr ‘[a-z] ‘[A-Z]‘  #将所有小写换成对应的大写(前面和后面的是一一对应)。

echo $file|tr -d  ‘ ’    #删除文件所有的空格

1.2.2. 简单判断语句test[exp1 -gt exp2] && {sh log4.sh}

判断条件为真时,执行后面的语句,否则不执行。

test[exp1 -gt exp2] || {sh log4.sh},同理,这个语句表示,当前面的语句为假时,后面的语句才执行。

1.2.3. 表达式结果赋值语句

path=$((cd dirname $0);pwd)

dirname $a,表示将文件a的路径列出来,两个命令先后执行,用分号隔开。

想将pwd显示的结果赋值给path变量,如果直接等于pwd就不对了。还比如,

grep_ip=$(echo $odl_ip|sed  ‘s/\./\\./g’)

将变量old_ip中的点,换成\.,而sed没有参数,表示只将替换的结果显示在屏幕上,并不改变文件的内容(由于前面是变量,不是文件,不能使用-i选项)

1.2.4. 命令赋值语句

赋值语句等号右边的句式太长时,需要让他们连接起来表示是一个整体,就需要用反引号括起来。

ip_list=`cat test.txt|grep “8.7.112.133”`

1.3. 算数表达式

shell中算数表示式有三种写法(注意,如果用expr方式,+ 号左右要有空格,而后面两种写法要不要空格都可以)

a=1;b=2

c=`expr $a + $b` c=$(expr $a + $b)

c=$(( $a + $b))

c=$[ $a + $b ]

乘法:c = $(( $a \* $b))

除法:c=$(( $a \ $b))

幂运算:c=$(( $a ** $b))

1.4. shell中的函数

因为执行循序是从前往后,所以函数要先定义再调用。

./test.sh  a  b

表示执行test.sh脚本,传递的参数是ab。且ab是传给main函数的。在main函数中,$0,表示脚本名字,$#参数个数,2$@原样列出参数a b$? 函数的执行结果;

如果test.sh脚本中有change_ip方法,change_ip() old_ip  new_ip,则在change_ip方法中,$@就是 old_ip new_ip了。

1.5. 获取当前文件所在目录

path=$(cd $(dirname $0);pwd)

1.6. 执行非当前用户的命令

su - oracle -c “sqlplus / as sysdba @tmp/shutdown.sql”

达到既执行Oracle用户的命令,有没有把当前用户切换到Oracle用户。

执行SQL命令时,需要先将命令放在一个文件中,用户之后再删除。

echo -e “shutdown immediate;\nexit;”>/tmp/shutdown.sql   /tmp目录所有用户都有权限

1.7. shell中的单引号和爽双引号

  单引号和双引号都是引用字符串,不同的是,双引号中的特殊字符:美元符号、反引号、反斜杠、大中小括号($`\)会保留特殊的转义作用,而单引号中所有的特殊符号都失去了特殊意义,将会原样显示。

  在grepsedawk命令中,需要注意,grepsed通常用双引号,而awk中用单引号。

  有些命令中的格式,需要具体对待,如awk ‘{print $1}’必须用单引号,而$1符号仍未特殊意义。

shell常见命令总结(二)

标签:过程   结果   dir   转义   class   否则   格式   log   margin   

原文地址:http://www.cnblogs.com/yahutiaotiao/p/8045030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!