gpt4 book ai didi

linux - 以编程方式执行解压缩命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:23 25 4
gpt4 key购买 nike

我已经创建了一个 shell 脚本,里面有一个简单的语句 unzip -o $1 并且在通过终端运行并传递一个 .zip 文件作为参数时它工作正常并且需要 5 其次是创建解压缩的文件夹。现在我想在 scala 中做同样的事情,我的代码如下:

object ZipExt extends App {

val process = Runtime.getRuntime.exec(Array[String]("/home/administrator/test.sh", "/home/administrator/MyZipFile_0.8.6.3.zip"))
process.waitFor

println("done")
}

现在,每当我尝试执行 ZipExt 时,它都会永远卡在 process.waitFor 中,并且未达到 print 语句。我已经尝试在本地和外部使用此代码服务器也。我尝试了其他可能性,比如在 shellscript 中创建局部变量,包括 shell 脚本中的 exit 语句,尝试解压缩除我的以外的其他 .zip,甚至有时 print 语句正在执行但是那里没有创建解压缩文件。所以我很确定以编程方式执行 unzip 命令以解压缩文件或者有其他方法以编程方式解压缩压缩文件有问题。我已经被这个问题困扰了 2 天, 所以有人请帮助..

最佳答案

您提供给我们的信息似乎不足以重现问题:

% mkdir 34088099
% cd 34088099
% mkdir junk
% touch junk/a junk/b junk/c
% zip -r junk.zip junk
updating: junk/ (stored 0%)
adding: junk/a (stored 0%)
adding: junk/b (stored 0%)
adding: junk/c (stored 0%)
% rm -r junk
% echo 'unzip -o $1' > test.sh
% chmod +x test.sh
% scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_66).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val process = Runtime.getRuntime.exec(Array[String]("./test.sh", "junk.zip"))
process: Process = java.lang.UNIXProcess@35432107

scala> process.waitFor
res0: Int = 0

scala> :quit
% ls junk
a b c

我建议在您自己的机器上尝试同样的复制。如果你也成功了,那就开始系统地减少成功案例和失败案例之间的差异,一次一个步骤。这将有助于缩小可能的原因范围。

关于linux - 以编程方式执行解压缩命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34088099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com