使用bash获取哈希值

时间:2010-07-15 07:08:50

标签: ios bash

我需要使用BASH从变量(包含哈希数据)中获取PID值。 eval错误,因为它内部的数组。这个脚本在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";
        );
};

2 个答案:

答案 0 :(得分:0)

我不知道iPhone上的bash(或者就此问题而言是launchctl)。但通常您需要获取包含"PID" = ...的行,从中删除引号,分号,空格和制表符,并将结果传递给eval。您可以使用grepsed

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

答案 1 :(得分:0)

无需使用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/;//'