小小的先決條件:我在OS X上,隨附的bash版本是一些舊的3.x版本。由於我需要一些現代功能,我前段時間更新到4.x。OS X:root用戶的更新bash版本
我已經編寫了一個腳本,當以當前用戶身份執行時工作正常,但通過plist文件/ launchd以root身份運行時失敗。
這是因爲我顯然只更新了我的用戶的bash版本,而不是root。
我該如何更新root用戶的bash,並且安全嗎?
另一種選擇會導致只是使用指向我更新的bash版本的「自定義」shebang,但這似乎有點冒失,因爲它可以保證在其他系統上失敗。我也知道關於plist文件的UserName
鍵,但不幸的是,當作爲我的用戶執行時,腳本不會調用事件(可能是我猜的一些路徑問題)。我希望bash更新會是更優雅的解決方案。
不能保證你用'#!/ bin/bash'得到了什麼版本的'bash'; shebangs是爲了方便,而不是嚴格的便攜性。如果你想要可移植性,你可以用#!/ bin/sh來定位POSIX shell。否則根據需要按照每臺機器調整shebang。 – chepner