java - 如何在 java 中运行带有分配选项的 sh 命令
问题描述
所以这是我目前在 sh 脚本中执行的 sh 命令:
sh bin/vtdStart.sh -project=4 -setup="Sim" -autoConfig >& debug.txt
我想要的是在java中执行脚本“vtdStart.sh”并同时设置项目、设置、自动配置。我怎样才能做到这一点?
解决方案
我假设您实际要执行的命令行是这样的:
bin/vtdStart.sh -project=$SM_PROJECT -setup=$SM_SETUP -autoConfig >& debug.txt
那vtdStart.sh
就是设置了执行位和#!/bin/sh
一行。
有两种方法可以做到这一点:
您可以手动进行环境变量插值,拆分命令参数,拉出重定向等,然后将它们与
ProcessBuilder
.你可以用简单的方法做到这一点:
Runtime.exec("/bin/sh", "-c", "bin/vtdStart.sh -project=$SM_PROJECT -setup=$SM_SETUP -autoConfig >& debug.txt");
并让外壳处理扩展和重定向。
推荐阅读
- python - 剥离和重命名文件
- git - 在 GitLab 中使用个人访问令牌从提交中识别用户
- java - 即使不应该接受输入,JAVA程序也会一直阻止终端输入
- consul - Consul bootstrap-期望值
- javascript - 如何在 HostedWebApps 中使用 Cordova InAppBrowser?
- python - 跨系列映射有序字典
- cucumber - 使用 cucumber-jvm 4 并行运行黄瓜测试
- android-layout - 扩展 AbstractDetailsDescriptionPresenter 文本的类被截断
- ruby-on-rails - Rails 5.2 - 子菜单不保持打开(Turbolink?)
- javascript - Spring boot Rest thymeleaf javascript 不返回 HTML