简单shell学习

来源:互联网 发布:c语言正弦函数怎么表示 编辑:程序博客网 时间:2024/04/29 03:30

1 请随意使用各种类型的脚本语言实现:批量将指定目录下的所有文件中的$HADOOP_HOME$替换成/home/ocetl/app/hadoop

find /home/ocetl/app/hadoop -exec sed -i 's/\$HADOOP_HOME\$/\/home\/ocetl\/app\/hadoop/g' {} \;

2 假设有10台主机,H1到H10,在开启SSH互信的情况下,编写一个或多个脚本实现在所有的远程主机上执行脚本的功能

例如:runRemoteCmd.sh "ls -l"
期望结果:
H1:
XXXXXXXX
XXXXXXXX
XXXXXXXX
H2:
XXXXXXXX
XXXXXXXX
XXXXXXXX
H3:
...
#!/bin/bashif [ $# -ne 1 ]then        echo "Usage: `basename $0` {command}"        exitfifor i in H1 H2 H3 H4 H5 H6 H7 H8 H9 H10do        echo "$i:"        ssh $i "$1"done
$# 表示提供到shell脚本或者函数的参数总数;$1 表示第一个参数。 -ne 表示 不等于另外:整数比较-eq     等于,如:if ["$a" -eq "$b" ]-ne     不等于,如:if ["$a" -ne "$b" ]-gt     大于,如:if ["$a" -gt "$b" ]-ge    大于等于,如:if ["$a" -ge "$b" ]-lt      小于,如:if ["$a" -lt "$b" ]-le      小于等于,如:if ["$a" -le "$b" ]<  小于(需要双括号),如:(("$a" < "$b"))<=  小于等于(需要双括号),如:(("$a" <= "$b"))>  大于(需要双括号),如:(("$a" > "$b"))>=  大于等于(需要双括号),如:(("$a" >= "$b"))另外:$?是shell变量,表示"最后一次执行命令"的退出状态.0为成功,非0为失败.

3.将/home/grid/hbase-1.0.0/lib下的hadoop*jar替换成/home/grid/hadoop-2.5.2中的对应jar包

[grid@hadoop4 lib]$ pwd/home/grid/hbase-1.0.0/lib[grid@hadoop4 lib]$ vim f.shfind -name "hadoop*jar" | sed 's/2.5.1/2.5.2/g' | sed 's/\.\///g' > f.logrm ./hadoop*jarcat ./f.log | while read Linedofind /home/grid/hadoop-2.5.2 -name "$Line" | xargs -i cp {} ./donerm ./f.log


0 0
原创粉丝点击