【发布时间】:2018-06-25 18:12:53
【问题描述】:
我正在启动一个缺少所需驱动程序的 linux 虚拟环境,因此我使用 shell 进行安装。我正在手动执行此操作,但想从 R 中自动化它,我的其余代码都在其中。
我可以通过点击 Tools>Shell...在 R 中打开 shell...
然后我要运行多行 Bash 脚本以安装“ODBC Driver 17 for SQL Server”
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
我想将这些命令保存在某种可读文件中,然后在 R 中运行。
经过一番搜索,我看到了使用 System 运行单行的帖子,但我无法找到有关是否/如何将其扩展为运行多行或如何从某种方式中提取这些命令的信息保存的文件。
上下文:我是 linux 和 Bash/Shell 命令的新手 谢谢!
【问题讨论】:
-
您可以使用
;作为分隔符将所有命令链接到一行。 -
谢谢@RalfStubner。当调用
system("sudo su; whoami")时,我得到username而不是预期的root,因为我在shell 中使用连续命令会得到。同样,将代码与我上面的问题中的;链接失败,因为权限未通过。我如何在与;链接时保留权限? -
确实,
sudo su很特别。如果您调用curl ...| sudo apt-key ...和curl ...| sudo tee ...,则不需要它。 -
谢谢@RalfStubner。我不确定我是否完全理解你的答案。我认为这已成为own question。希望那里的答案将有助于澄清我自己和其他人。如果你有机会,我会喜欢你的意见。谢谢!