You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中调用带read交互的bash脚本以支持用户输入?

解决方案

方法1:启用system()的交互模式

在system()命令中添加interactive=TRUE参数,强制子进程绑定当前终端的输入输出流,让bash的read命令能正常接收用户输入:

system("./test.sh", interactive = TRUE)

方法2:用交互bash执行脚本

如果是在纯终端环境运行R(非RStudio),可以直接调用交互模式的bash执行脚本,确保输入通道正常:

system("bash -i ./test.sh")

-i参数让bash以交互模式启动,完美适配需要用户输入的场景。

方法3:使用system2()替代system()

system2()是R提供的更现代的系统命令调用工具,默认对交互场景支持更好,显式指定输出参数后可直接对接终端:

system2("./test.sh", stdout = "", stderr = "")

额外注意事项

  • 确保test.sh有可执行权限,若没有可先运行chmod +x test.sh赋予权限;
  • 若在RStudio中运行,需确认Tools -> Global Options -> Terminal中的配置允许子进程访问终端输入。

内容的提问来源于Stack Exchange,提问作者goblinshark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:55:28