0

我是 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(这是用户输入)。如果我将“读取”放在 ssh 代码块中,它只会跳过它。

任何帮助将不胜感激

谢谢!

4

3 回答 3

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
于 2012-12-20T14:40:10.570 回答
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 端脚本。

于 2012-12-20T14:52:14.197 回答
0

是的,我同意戴夫 G 的观点。

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

于 2012-12-20T14:44:53.477 回答