Ios 使用bash获取哈希值

Ios 使用bash获取哈希值,ios,bash,Ios,Bash,我需要使用BASH从变量(包含散列数据)中获取PID值。由于其内部的数组而导致求值错误。这个脚本在iPhone上 eval "$(launchctl list com.3radicateRD)" eval: line 10: syntax error near unexpected token `(' eval: line 10: ` "ProgramArguments" = (' ------------------------------------------------------

我需要使用BASH从变量(包含散列数据)中获取PID值。由于其内部的数组而导致求值错误。这个脚本在iPhone上

eval "$(launchctl list com.3radicateRD)"

eval: line 10: syntax error near unexpected token `('
eval: line 10: `  "ProgramArguments" = ('
------------------------------------------------------
{
        "Label" = "com.3radicateRD";
        "LimitLoadToSessionType" = "System";
        "OnDemand" = false;
        "LastExitStatus" = 0;
        "PID" = 6810;
        "TimeOut" = 30;
        "ProgramArguments" = (
                "bash";
                "/var/mobile/Library/3radicateRD/3radicateRD";
        );
};

我不知道IPhone上的bash(或者launchctl)。但通常您需要获取包含
“PID”=…
的行,从中删除引号、分号、空格和制表符,并将结果传递给
eval
。您可以使用
grep
sed

eval $(launchctl list com.3radicateRD | grep '"PID"' | sed 's/["; \t]//g')

不需要使用eval。只要正常执行你的程序

launchctl list com.3radicateRD | awk '/PID/{print $3}'
更新: 我没有iphone,所以我想有bash

launchctl list com.3radicateRD | while read line
do
  case "$line" in 
   *PID* )
     set -- $line
     echo $3
  esac
done
如果你有sed

launchctl list com.3radicateRD | sed '/PID/s/.*= //;s/;//'

感谢您的快速响应,iPhone没有awk二进制文件,因此在本例中不起作用。
eval
是一个bash内置程序,它执行您给它的代码,就像它是bash代码一样。您将为其提供
launchctl
命令的输出。这不是bash代码。把
eval
放在那里绝对没有意义。