我發現LaunchCtl在使用'submit'協議時會跳過參數。將參數提交到launchctl時參數運行不正常
我有以下腳本(script.sh):
#!/bin/bash
arg1="$1"
arg2="$2"
arg3="$3"
arg4="$4"
echo $arg1$arg2$arg3$arg4
exit 1
當我打電話從終端script.sh,有一個與傳遞參數進去沒有問題。 當我通過LaunchCtl做同樣的事情時,出現了一些錯誤,第一個參數消失了。
launchctl submit -l MyUniqueScript -p ROOT/script.sh -o ROOT/out.txt -e ROOT/err.txt "abc" "def" "ghi" "jkl"
我連查我的過程
launchctl list MyUniqueScript
我有我所有的參數就在這裏。終端打印出來。
{
"Label" = "MyUniqueScript";
"LimitLoadToSessionType" = "Background";
"OnDemand" = false;
"LastExitStatus" = 256;
"TimeOut" = 30;
"Program" = "/Users/ROOT/script.sh";
"StandardOutPath" = "/Users/ROOT/out.txt";
"StandardErrorPath" = "/Users/ROOT/err.txt";
"ProgramArguments" = (
"abc";
"def";
"ghi";
"jkl";
);
};
但我有out.txt是相當弄亂了:
defghijkl
不是
abcdefghijkl
誰能幫我這個?有誰知道我應該做什麼,或者我誤解了什麼?
我還必須說,上面的小例子當然不是我正在處理的原始腳本。這只是更容易顯示我的問題。
請幫幫我!謝謝!
你可以發佈你的實際腳本的相關部分?我可能會幫助我們明白爲什麼「ProgramArguments」的第一個元素看起來不會傳遞給script.sh。 – chepner