Bash-Shell脚本,在有某个命令的情况下,仍然报「command not found」的错误
描述问题
目的:
利用scp拷贝多个文件到另一台远程机器的特定目录下
原来是手工操作, 麻烦, 故想利用shell脚本帮助, 但是出错了. 无法找出错误源头
上下文环境
RedHat6.2
有scp命令
已传递公钥到远程机器上,故ssh是不需要输入密码的
脚本中的PATH已妥善处理, 所以应该没有问题的啊?
scp位置:
which scp
/usr/bin/scp
重现
1 bash thefile.sh
2 ./thefile.sh
可能需要两台机器
相关代码
#!/usr/bin/env bash
# Programm:
# History :
# Date :2016/8/17
# Author :
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
COLOR_RED='\033[0;31m'
COLOR_GREEN='\033[0;32m'
COLOR_NONE='\033[0m'
HOME=`readlink -f ~`
USER=root
HOST="192.168.199.222"
PATH=/root/
echo -e "拷贝mybashrc .vimrc .vim"
_no_such_file() {
echo -e "${COLOR_RED} NO SUCH FILE OR DIRECTORY! ${COLOR_NONE}"
}
# 拷贝mybashr
cp_mybashrc() {
mybashrc=mybashrc
if [[ -f "$HOME/$mybashrc" ]]; then
scp "$HOME/$mybashrc" "$USER@$HOST:$PATH"
else
_no_such_file
fi
}
cp_vimrc() {
vimrc=".vimrc"
if [[ -f "$HOME/$vimrc" ]]; then
scp "$HOME/$vimrc" "$USER@$HOST:$PATH"
else
_no_such_file
fi
}
cp_vim() {
vim=.vim
if [[ -d "$HOME/$vim" ]]; then
scp -r "$HOME/$vim/" "$USER@$HOST:$PATH"
else
_no_such_file
fi
}
main() {
echo -e "${COLOR_GREEN}CLONING MYBASHRC .VIMRC .VIM... ${COLOR_NONE}"
cp_mybashrc
cp_vimrc
cp_vim
}
main
报错信息
./bash_learn.sh: line 32: scp: command not found
./bash_learn.sh: line 41: scp: command not found
./bash_learn.sh: line 50: scp: command not found
相关截图
已经尝试哪些方法仍然没有解决(附上相关链接)
问题简化
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试把
scp
换成/usr/bin/scp