如何在远程计算机上运行脚本时使用 Shell 脚本中的 Read 命令

如何在远程计算机上运行脚本时使用 Shell 脚本中的 Read 命令

我想在远程机器上运行我的 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

当在本地机器上运行脚本时,此代码工作正常。

提前致谢 !

答案1

虽然这可能是可能的,但肯定不值得付出努力。无论如何,要求用户与脚本交互(在我看来)总是一个坏主意。这意味着您永远无法自动使用脚本,并且还会产生您所描述的问题。通常最好将用户的选择作为参数传递。您也不希望或不需要breakcase语句中

restore (){
        echo "Restore"
}

deploy () {
        echo "Deploy"
}

## read the 1st argument
case $1 in

        restore)
        restore;
        ;;

        deploy)
        deploy;
        ;;
esac

然后,像这样运行脚本:

foo.sh restore

或者

foo.sh deploy

相关内容