java - 通过java运行Shell脚本

标签 java bash shell

所以我有一个 java 类,它接受单独的命令并通过 Runtime 和 Process 对象将它们放入 shell 中。我的问题是我可以运行如下命令:

$ls /users/me/documents

它会起作用,但是

$cd /users/me/documents
$ls

仍然列出根。显然,进程和运行时对象不会跟踪它的位置。有什么方法可以捕获终端对象,或者我必须手动跟踪当前目录吗?

最佳答案

每个 shell 脚本都将重新开始。您需要将所有命令串在一起:

cd /usr/me/documents && ls

cd /usr/me/documents; ls

第一个变体仅在 cd 成功时才运行 ls(因此,如果目录损坏,则 ls 将不会运行)。第二种变体将始终运行 ls (因此,如果目录错误,ls 将在默认目录中运行)。

关于java - 通过java运行Shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972653/

相关文章:

java - 我可以在 Activity 和类中声明和使用相同的按钮吗?

c# - 为我的应用程序制作属性处理程序以将自定义属性添加到文件格式

c - 我怎样才能把它变成 shellcode?

java - 查找并显示字符串中的连续重复组合

java - 未加载 Spring Boot 测试 H2 sql 脚本

java - 将朗伯 2 转换为 WSG84

linux - 使用 Ubuntu 进行多屏显示

bash - for 循环中 bash 中的简单数学语句

sql - firebird isql 结果中的转义引号

windows - MSYS shell 保持脚本文件打开,防止修改