将变量传递给ssh会话

时间:2012-12-20 14:35:22

标签: bash ssh

我是bash脚本的新手,所以请耐心等待。我有一个脚本执行一些本地的东西,然后继续ssh到服务器执行脚本。这是main.sh:

read -p "Comment: " yn
Echo $yn
ssh user@whatever.com << EOF
  cd public_html/subdir/
  sh db/push.sh
EOF

服务器上的文件(push.sh)确实:

mysqldump -u user -ppassw dbname > db/db_sync.sql
git commit  -am "$yn"
git push

所以基本上我需要通过ssh和push.sh传递的值$ yn(用户输入)。如果我把'读'&#39;在ssh代码块中,它只是跳过它。

非常感谢任何帮助

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以尝试以下方法吗?

客户方:

read -p "Comment: " yn
Echo $yn
ssh maikelva@maikelvanhees.com << EOF
  cd public_html/hackerfit/
  sh db/push.sh "$yn"
EOF

服务器端:

mysqldump -u user -ppassw dbname > db/db_sync.sql
git commit  -am "$1"
git push

答案 1 :(得分:1)

尝试:

read -p "Comment: " yn
echo $yn
ssh user@whatever.com << EOF
  cd public_html/subdir/
  yn="$yn" sh db/push.sh
EOF

无需更改whatever.com脚本。

答案 2 :(得分:0)

是的,我同意Dave G。

将其作为参数提供,因为$ yn已由本地shell扩展