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

如何在R脚本中调用自定义Bash脚本?解决CreateProcess失败问题

解决R脚本调用Bash脚本时的CreateProcess错误

错误原因

出现CreateProcess失败的错误,基本是因为Windows系统默认没有内置Bash环境,R的system2函数找不到能直接执行.sh脚本的程序;如果是Linux/macOS环境,则大概率是脚本权限或路径问题。

分场景解决方法

1. Windows环境(用Git Bash或WSL)

用Git Bash执行

如果已经安装了Git for Windows(自带Git Bash),直接在R脚本里指定Bash程序的路径来调用脚本:

# call.R
# Git Bash默认路径,注意用正斜杠或双反斜杠
system2('C:/Program Files/Git/bin/bash.exe', args = c('test.sh'))

如果Git Bash已经添加到系统PATH中,可以简化为:

system2('bash', args = c('test.sh'))
用WSL执行

如果启用了Windows子系统Linux(WSL),可以通过WSL来调用脚本:

system2('wsl', args = c('./test.sh'))

注意:要确保test.sh在WSL可访问的路径下,或者使用WSL格式的绝对路径(比如/mnt/c/你的脚本目录/test.sh)。

2. Linux/macOS或WSL环境

  • 首先给test.sh添加可执行权限:
chmod +x test.sh
  • 然后在R脚本里用相对路径或绝对路径调用:
# 相对路径(确保当前工作目录是脚本所在目录)
system2('./test.sh')

# 或者用绝对路径,比如
# system2('/home/yourname/scripts/test.sh')

额外注意事项

  • 确保test.sh和call.R在同一个工作目录,或者在R中用setwd("脚本所在目录路径")切换工作目录。
  • 如果你的Bash解释器路径不是/usr/bin/bash(比如Git Bash的Bash路径是/bin/bash),需要修改test.sh的第一行shebang为对应路径。

内容的提问来源于stack exchange,提问作者Yousuf Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:35:06