脚本t.sh如下,执行成功
#!/bin/bash
source ./env.sh
ssh -i ${KEY} ${SLAVE_IP} << exe_cmd
cd /usr/local
rm -rf nestdb_master
exit
exe_cmd
echo done
脚本t2.sh如下,执行失败
疑问:为什么同样的语句,放在function里面会失败??应该如何解决??
修改为如下这样,把exe_cmd前面空格删掉,就执行ok
为啥必须顶格写才能识别??
后来,搜到了答案,原来shell里面<<符号是一种特殊的重定向,有个专有的名字叫here document,它有自己的语法格式,用法如下:
cmd << delimeter
xxxxx
delimeter
语法规定了这里的delimeter必须顶格写,前后加空格,tab都不行的。原来如此啊。