在远程计算机上运行shell脚本时,选择Command not working

我想在远程计算机上运行我的shell脚本,我需要用户想为某些变量赋值,因为我们在本地机器上运行脚本时使用Read命令但是我在远程机器上运行脚本时使用相同的命令但是它不是为我工作。 如何在远程计算机上使用Read命令运行脚本?

示例代码:

restore (){ echo "Restore" } deploy () { echo "Deploy" } echo "Select any option to proceed..." read opt case $opt in restore) restore; break;; deploy) deploy; break;; esac 

此代码适用于在本地计算机上运行脚本时。

提前致谢 !

如果告诉bashstdin读取命令,这是-s选项的作用,然后重定向其stdin,则不能再通过stdin提供输入。

你应该把它作为一个普通的脚本:

 ssh root@192.168.1.116 bash /root/BackupShellScript/remote.sh 

并从您的脚本中获取/usr/local/etc/BackupShellScript/configuration.conf ,而不是使用cat和进程替换来解决问题。

该脚本甚至无法在本地运行 – 更别提ssh了。

问题只是你将结果放入option然后使用case $opt 。 因此, opt更改option ,一切都很好。

 #!/bin/bash restore (){ echo "Restore" } deploy () { echo "Deploy" } echo "Select any option to proceed..." select opt in "deploy" "restore" ; do case $opt in restore) restore; break;; deploy) deploy; break;; esac done