再会。我有一系列我想通过函数执行的命令,以便我可以获取退出代码并相应地执行控制台输出。话虽如此,我在这里有两个问题:
1) 我似乎无法将stderr 指向/dev/null。
2) 在执行 $1 之前,不会显示第一个回显行。直到我运行需要一段时间才能处理的命令(例如在硬盘驱动器中搜索文件)之前,它并不是很明显。此外,很明显情况确实如此,因为输出如下所示:
sh-3.2# ./runScript.sh
sh-3.2# com.apple.auditd: Already loaded
sh-3.2# Attempting... Enable Security Auditing ...Success
换句话说,stderr 显示在 "Attempting... $2" 之前
这是我尝试使用的功能:
#!/bin/bash
function saveChange {
echo -ne "Attempting... $2"
exec $1
if [ "$?" -ne 0 ]; then
echo -ne " ...Failure\n\r"
else
echo -ne " ...Success\n\r"
fi
}
saveChange "$(launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist)" "Enable Security Auditing"
任何帮助或建议表示赞赏。