Linux的Shell编程

Linux的Shell编程

hadoop搭建时方便用的脚本

xcall.sh
vi /usr/local/bin/xcall.sh

输入以下内容

#!/bin/bash
#注意node0$i 是为了拼接处主机名,这里按照实际情况更改它,及for循环
#该脚本可以同时执多个linux中的命令,比如jps、ls -al、rm -rf *(慎用)等
params=$@
i=1
for (( i=1 ; i <= 4 ; i = $i + 1)) ; do
    echo ==============node0$i $params =========
    ssh node0$i "$params"
done
You have mail in /var/spool/mail/root
xsync.sh
#!/bin/bash
#该脚本是为了遍历多台linux中执行rsync -lr命令
#该命令是用来夸linux复制文件
if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi

p=$1
dir=`dirname $p`
filename=`basename $p`
cd $dir
fullpath=`pwd -P .`

user=`whoami`
for (( i = 1 ; i <= 4 ; i = $i + 1 )) ; do
    echo ========== node0$i ============
    rsync -lr $p ${user}@node0$i:$fullpath
done ;

shell脚本基础

Shell 编程一般指 shell 脚本编程。

语法:

​ 使用 vi 编辑器新建一个文件 hello.sh

#!/bin/bash 
echo "Hello World !" 

执行

​ 方式1:

sh hello.sh

方式2

chmod +x ./hello.sh   	#使脚本具有执行权限,给所以用户加执行权
./hello.sh    			#执行脚本
1.变量
  • 变量前后无空格,其他前后都有空格

    局部变量

#!/bin/bash
str="hello"
echo ${str}world

环境变量

echo $PATH
echo $HOME
2.特殊字符
符号含义
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。
$$脚本运行的当前进程 ID 号
$!后台运行的最后一个进程的 ID 号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。不是一体返回
$?显示最后命令的退出状态。 0 表示没有错误,其他任何值表明有错误。如果函数有返回值,可以代表函数返回值
#!/bin/bash
echo "第一个参数为: $1";
echo "参数个数为: $#";
echo "传递的参数作为一个字符串显示: $*";

执行:

./test.sh 1 2 3 
3.运算符
#!/bin/bash
a=1;
b=2;
echo `expr $a + $b`;
echo  $((a+b));
echo  $[a+b];
4.if语句
#!/bin/bash
read -p "please input your name:" NAME ## read命令用于从控制台读取输入数据
## printf '%s\n' $NAME
if [ $NAME = root ]
	then
		echo "hello ${NAME}, welcome !"
elif [ $NAME = itcast ]
	then
		echo "hello ${NAME}, welcome !"
else
		echo "Get out Please!"
fi
5.for语句

方式1:

#!/bin/bash
for N in 1 2 3 
do
    echo $N
done

方式2:

#!/bin/bash
for ((i = 0; i <= 5; i++)) 
do 
	echo "welcome $i times" 
done 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值