【发布时间】:2014-08-15 00:20:26
【问题描述】:
好的,所以我是 bash 脚本的新手,大约 2 个小时,我的头撞到了墙上。我需要将一些变量从一个脚本传递到另一个脚本,但似乎无法让它工作。
这很好用
script1.sh
echo "Enter your name"
read name
export name
./script2.sh
sript2.sh
echo $name
这不是
script1.sh
echo "Enter your name"
read name
export name
ssh $user@$domain "bash -s" < ./script2.sh
sript2.sh
echo $name
代码很笨,我明白了,但基本上我想做的是将数据库变量传递给脚本 2,以便在我通过 SSH 连接到的服务器上使用。我会在一个脚本中完成这一切,但似乎让服务器命令运行的唯一方法是在登录后调用第二个脚本,否则它会在本地运行服务器命令并失败。如果这有什么不同的话,我会在 Mac 上执行此操作。
帮助?
** 使用更合法的代码更新 ****
login.sh
#!/bin/bash
echo "Enter server username:"
read user
echo "Enter server domain"
read domain
echo "Enter your password"
read password
echo "Enter database name"
read database
export database
export user
export domain
export password
ssh $user@$domain "bash -s" < ./create_files.sh
create_files.sh
#!/bin/bash
cd public_html
tar -zcvf test.tar.gz test.html
echo "db:"$database
mysqldump -u $user -p"$password" $database > $database.sql
这里的目标是在完成后使用 create_files.sh 中 login.sh 的详细信息,我还需要使用登录详细信息将创建的文件 scp 回本地计算机。希望这可以澄清问题。
【问题讨论】: