@devnull 写道:
脚本中的最后一行 sudo reboot now 会使任何类型的循环变得毫无意义。
我相信重启命令就像任何其他命令一样。它应该回显到文件中,而不是运行以生成最终用户的脚本。
我认为一个好主意是有一个创建脚本的脚本。
这类似于有多少网站工作。服务器上的脚本可以回显 HTML、CSS 和 JavaScript 代码以供 Web 浏览器使用。
这是一个例子:
#!/bin/bash
# set the path to the dir
dir=$(dirname $0)"/"
# set the path to the file that keeps track of the serial numbers
snFile="$dir""sn.txt"
# set the file name of the file to be generated
fileName="serialize"
# read the last serial number used
if [ -e "$snFile" ];
then
read lastSN < "$snFile"
else
lastSN="0"
fi
# increment the serial number
let "nextSN = $lastSN + 1"
echo "$nextSN" > "$snFile"
# create a path variable for the file being created.
generatedPath="$dir$fileName$nextSN.sh"
# generate the script
echo "#!/bin/bash" > "$generatedPath"
echo 'fpath=$(dirname "$0")' >> "$generatedPath"
echo '' >> "$generatedPath"
echo "ee_image=mlr-$nextSN.bin" >> "$generatedPath"
echo '' >> "$generatedPath"
echo 'sudo nvram tbt-options=4' >> "$generatedPath"
echo '' >> "$generatedPath"
echo 'sudo /usr/sbin/bless -mount / -firmware \"$fpath/ThorUtilDevice.efi\" -payload \"$fpath/$ee_image\" -options \"-o -ej 1 -blast efi-apple-payload0-data\" \' >> "$generatedPath"
echo '' >> "$generatedPath"
echo 'sudo reboot now' >> "$generatedPath"
# give the user some feedback
echo "generatedPath: $generatedPath"
如果让您的最终用户运行 bash 脚本就足够了,那么我认为您几乎完成了。
如果您想拥有更好的用户界面并拥有一个供最终用户运行的 Mac 应用程序,请给我发送电子邮件,我可以为您提供帮助。
kaydell@learnbymac.com