[英]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.