问题标签 [system2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在 Windows 上使用 stdout = TRUE 调用 system2 时嵌入 nul 警告
尝试wmic
通过system2
接口检索当前进程命令行信息时:
我得到以下输出和警告:
有趣的是,当使用system
, 来获得相同的所需输出(当前进程的命令行信息)时,它似乎工作正常:
输出:
此外,system2
将stdout = ""
输出打印到控制台:
我尝试以不同的方式指定args
参数,但没有运气。system2
有人可以解释警告吗?下面的一些sessionInfo
:
- R 版本 3.6.2 (2019-12-12),运行于:Windows 10 x64
- 平台:x86_64-w64-mingw32/x64(64位)
- 语言环境:LC_COLLATE=English_United Kingdom.1252
关于复制的一些细节:
- 在活动的 R 会话中,此问题仅在 RGui 中为我显现,而不是在 RStudio 中或从命令提示符 (cmd.exe) 运行的 R 会话中
- 当代码在启动时执行时(例如通过 .Rprofile),它会同时出现在 RGui 和 RStudio 中,但不会出现在从命令提示符 (cmd.exe) 创建的 R 进程中
r - R system2成功后退出失败
我正在运行一个外部可执行文件,将结果捕获为一个对象。.exe 是基于遗传参数和遗传价值预测选择种群的工具。程序按要求执行并写入输出,但未能退出。没有错误,当手动停止时,它以状态码 0 退出。我怎样才能让这个调用退出并像其他系统调用一样继续?
调用的格式如下所示:
t <- tryCatch(system2("OPSEL.exe", args = "CMD.txt", timeout = 10))
我已经尝试使用上面引用的两个文件在命令 shell 中运行它,它会正确退出。
r - 如何使用 R 中的以下命令:echo "${pipestatus[1]}"?
我需要检查 Debian 上 R 的管道命令的退出状态,就像这里一样,但无法echo "${pipestatus[1]}"
使用system2
/system
函数从 R 成功运行。当我使用命令行时,该命令正常工作。
我尝试在 R 中使用的命令可能如下所示(我使用的 shell 是 zsh):
经过一些测试,我可以看到退出状态检查命令无法正确引用,但我无法找出正确的方法。
我正确地引用这个命令是问题吗?如何echo "${pipestatus[1]}"
从 R 运行这个 () 命令?是否有任何替代方法可以使用相关命令检查退出状态?
r - 将 stdout = TRUE 添加到 R 的 system2 命令并收到警告。为什么?
我需要将在 Linux (Ubuntu) 上运行的 Firefox 进程的数量存储在 R 脚本的变量中。我使用的 system2 命令本身似乎有效。但是,当我添加stdout = TRUE
以捕获字符向量中的信息时,我会收到警告。为什么要发出警告?
r - 如果命令具有像“cmd | head”这样的管道,我如何使用 system 或 system2
我注意到,当我在其中运行一个长命令时linux
(我在终端上使用的是 cantos 7.3 发行版,R 4.0.3)并且我通过管道head
仅向我显示第一个输出(并且命令停止)
当我在 RI 中尝试等效项时无法获得相同的行为
有没有办法让我获得与R
我在系统命令行上获得的行为相同的行为?
r - 无法 git 添加使用 R 脚本中的 system2
我正在尝试使用 git add 添加文件。注意:我对 git很陌生。
使用 Ubuntu Linux
从终端提示符下,这是可行的。
/usr/bin/git add static/fb/img/gic1-5_yield_curve_5bd11b935bd72745.png
git status
我可以通过执行并查看要提交的更改下的文件名来确认它是否有效:
我希望能够从 R 脚本中做同样的事情。这不起作用:
system2(command = "/usr/bin/git", args = c("add", "static/fb/img/gic1-5_yield_curve_5bd11b935bd72745.png"))
为什么是这样?
r - R System 命令在 R studio 中工作,但在 Rescript 批处理模式下不工作,有什么方法可以从 Rescript 模式调用 vbs 脚本?
我在 new.R 文件中有以下代码,在 RStudio 交互模式下工作正常。
但是当我使用 运行new.R
文件时Rscript
,它不会调用 vbs 脚本。有没有其他方法可以在 Rscript 模式下调用 vbs 脚本?
r - system2("bash", "ls") -> 无法执行二进制文件
任何人都知道为什么
将导致(在 R-Gui 和 RStudio 控制台中)
而其他 shell 工作没有问题(参见下面的示例),而 RStudio 终端中的“bash”也工作没有问题。如果有补救措施?
工作system2
示例:
在此处在 Windows 10 上运行 R-3.6.3 ... 将“Git bash”作为“bash”执行。
PS:以防万一有人想知道-我也尝试了完整路径,即/usr/bin/ls
->相同的结果
r - 根据 `stdout` 选项,具有 R`system2` 的不同输出文件
考虑这个文件: ansi-to-html_bundle.js。
在这里,我cat ansi-to-html_bundle.js
使用. 这将返回文件行:system2
stdout = TRUE
现在我cat ansi-to-html_bundle.js
使用system2
. stdout
这将写入此文件:
然后,如果我比较获得的两个文件ansi-to-html_bundle_cat1.js和ansi-to-html_bundle_cat2.js,它们是不同的(下面的 WinMerge 屏幕截图):
这是一个错误还是有合理的解释?
我认为这个问题发生在 Windows 上而不是 Linux 上。这似乎与文件中存在 UTF-8 字符有关。正确的文件(类似于原始文件)是第二个文件。
r - 如何解决西里尔符号(cmd 系统命令)的问题?
在我之前的帖子中,我提出了一个关于 R 中西里尔符号的问题。今天我遇到了另一个问题。例如,我们想查看我们正在运行的进程:
而我们所看到的...
"Iconv"
,这在上一个任务中有所帮助 - 在这里无济于事。
sys.setlocale
- 也。
什么可以解决这个问题?