簡體   English   中英

使用jq解析啟動的JSON

[英]Using jq to parse JSON in launchd

我有一個shell腳本,它評估一個充滿JSON文件的文件夾,當直接調用該文件夾時運行良好,但從啟動運行時失敗。 具體來說,launchd在此行失敗:

current_file_snapshots=$(cat $current_file | jq '.snapshots | length')

因為:

jq: command not found

我瀏覽了jq文檔以弄清楚這一點,但是沒有提到這個問題。 我一直無法弄清楚如何使jq(或任何類似的第三方工具)通過啟動工作。

謝謝!

嗯,看來我以為launchd與普通的bash shell共享相同的PATH。 明確說明JQ居住的地方似乎可行:

因此,在文件頂部添加了:

JQ=/usr/local/bin/jq

並將所有“ jq”實例替換為:

$JQ

作為在Mac OS X中運行的第一個進程, launchd除了在/etc/launchd.conf指定的內容外,沒有其他環境(包括PATH參數)。 您可以創建該文件並添加

setenv PATH "/usr/local/bin"

如果要與常規shell會話相關聯的完整環境,則應顯式執行腳本作為登錄shell:

bash -l myscript.bash

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM