原始的需求是要在不改变一个想要编辑的文件属性的前提下,把不具备读写该文件的权限的图形化文本编辑器用 sudo 运行起来,编辑文件后存盘退出。很像 Windows 下的 runas。网上这方面的资料不太多,三太爷对 shell 编程更是一知半解,最后写出这么个玩意来:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/sh if [[ $# < 1 ]]; then echo "Usage: $0 ApplicationName AppArg1 AppArg2 ..." exit 1 fi #TODO: get this path from system? apps=/Applications app=$1.app exe=`defaults read $apps/$app/Contents/Info CFBundleExecutable` cmd=$apps/$app/Contents/MacOS/$exe shift 1 sudo $cmd $* |
运行结果是,有的应用可以,有的不行,权当练手了。