【发布时间】:2014-07-17 23:42:47
【问题描述】:
第一次来这里,在脚本方面非常初学者。我正在尝试创建一个脚本,其中包含允许我 ssh 到另一个系统上的选项,然后在另一个系统上执行命令之后。这是我所拥有的:
usage(){
echo "./clu_com <FE ip addr> <option>"
echo ""
echo "Options are:"
echo " -s | --ssh ) Run all of the ssh options"
echo " -g | --get ) Run all of the get options"
echo " -p | --put ) Run all of the put options"
echo " -h | --help ) Bring up this menu"
echo ""
}
cssh(){
ssh $2 '[ssh-command]'
}
cget(){
ssh $2 '[get-command]'
}
cput(){
ssh $2 '[put-command]'
}
if [ "$#" != 2 ]; then
usage
else
while [ "$1" != "" ]; do
case $1 in
-g | --get ) cget
;;
-s | --ssh ) cssh
;;
-p | --put ) cput
;;
-h | --help ) usage
exit
;;
* ) echo "Invalid"
usage
exit
;;
esac
done
fi
到目前为止,我所做的只是基本的 -h 命令,它只显示每个命令的选项菜单。这些命令已经是我在 ssh 进入系统后尝试使用的硬编码调用。每当我运行此代码时,我都会不断地获得 ssh 的使用情况,我认为这是由于我的循环格式造成的。不知道有什么问题。请只是寻找一些输入。
【问题讨论】:
-
所以我的循环一定有问题,因为即使我只是输入我试图进入的系统的 ipaddr,然后尝试自动退出它,ssh 就是我马上回来进去。因此,如果我在 cssh 之后抛出一个退出,则循环会不断运行,它似乎允许我退出而不自动返回到节点..
-
请提供一个示例调用和你得到的结果。
标签: linux bash loops ssh optional-parameters