经常会遇到集群中的某一个文件需要同步更新。 手动获取到文件绝对路径再使用scp命令有些繁琐 由于所有需要更新的文件在集群存储的路径都是相同的 于是写了一个简化脚本(自用)
#!/bin/bash
filepath=`
cd $(dirname
$1);
pwd`
nodeNums=`expr
$# -
1`
if [
$nodeNums -lt 1 ]
then
echo '参数少'
else
for((i=
2;i<=
$#;i++))
do
scp -r
$1 hadoop@
${!i}:
${filepath}
echo ${!i}
done
fi
其中在获取第i个参数时使用了${!i} 这个用法也是网上看来的,为什么!在这里有这样的用处暂时也是费解, 但比使用shift的方式 或者这样
for i
in ${a[@]};
do
echo $i
看起来要舒服的多 默默记下