Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 进程和进程生成器_Java_Bash_Scala_Awk - Fatal编程技术网

Java 进程和进程生成器

Java 进程和进程生成器,java,bash,scala,awk,Java,Bash,Scala,Awk,我正在尝试运行一个greps空闲内存的进程,但process builder无法解析awk部分 scala> import scala.sys.process._ scala> "grep MemFree /proc/meminfo" #| "awk '{print $2}'" ! awk: cmd. line:1: '{print awk: cmd. line:1: ^ invalid char ''' in expression res16: Int = 1 与此相同的结果

我正在尝试运行一个greps空闲内存的进程,但process builder无法解析awk部分

scala> import scala.sys.process._

scala> "grep MemFree /proc/meminfo" #| "awk '{print $2}'" !
awk: cmd. line:1: '{print
awk: cmd. line:1: ^ invalid char ''' in expression
res16: Int = 1
与此相同的结果

scala> Seq("grep", "MemFree /proc/meminfo") #| Seq("awk", "'", "{print $2}", "'") !
awk: cmd. line:1: '
awk: cmd. line:1: ^ invalid char ''' in expression
逃跑也不管用

scala> Seq("grep", "MemFree /proc/meminfo") #| Seq("awk", "\"'{print $2}'\"") ! 
res21: Int = 0

如何让awk{print$2}正常工作?是否有方法检查process builder试图执行的内容?

撇号仅由bash用于了解参数边界的位置。在Scala中,当您使用
Seq
时,这些边界是给定的,撇号没有任何意义,它们被传递给
awk
,后者随后会投诉

导入scala.sys.process_
(Seq(“grep”,“MemFree”,“/proc/meminfo”)| Seq(“awk”,“print$2}”)。!
还要注意grep的参数必须分开


顺便说一下,如果您想将值输入Scala,可以使用

(Seq(“grep”、“MemFree”、“/proc/meminfo”)| Seq(“awk”、“{print$2}”)。!!。修剪

Bash或类似shell中使用了一对
,表示其中的空格不是单独参数的分隔符。也就是说,
{print$2}
意味着
awk
命令的第一个参数应该是字符串
{print$2}

所以您正在寻找
Seq(“awk”,“print$2}”)