shell - shell script 进入 SSH,运行另一个脚本,2nd 脚本请求用户输入

  显示原文与译文双语对照的内容

ssh -t -t me@myothermachine.ca<<EOF
cd.. /../path/to/script/directory/
sh copyfiles.sh
cd.. /../copied/directory
sh renamer.sh
exit
EOF

各位

上面的脚本是我正在使用的。 copyfiles.sh 有一个'读取'请求年份,然后是我要复制的文件的月份。 所复制的文件有标题的年份和月份,以便查看该文件的标题并查找用户输入的所有文件。 对于你来看看代码来看看它实际上做了什么可以能更容易。 就是它.


#get the year and the month from the user
echo"Please enter the year"
read year
echo"Please enter the month"
read month

files=`find. -name"*$year*$month*.txt"`

for file in $files; do
 cp $file/the/copy/to/directory
done

我得到的问题是,我在请求" 2014"时输入了,然后。

它登录我的其他机器,显示来自初始脚本的中间 5行代码,然后开始以命令的形式读取它们。 正确的cd,然后获得,脚本,它要求年份,我进入年份,并挂起它。

shell script 类似的用户输入不可行?

时间: 原作者:

你不能这样做。如果你有 copyfiles.sh的源,你应该修改它,以便将所需的输入传递给 copyfiles.sh 。 然后,你的ssh会话可以为你执行它,e.g.


ssh -t -t me@myothermachine.ca<<EOF
 cd.. /../path/to/script/directory/
 sh copyfiles.sh --year 2014 --month june
 cd.. /../copied/directory
 sh renamer.sh
 exit
EOF

原作者:
...