我目前正在为基于mac的环境构建无人参与的安装脚本。
为此,我有一系列应用程序作为PKG +许多其他设置和plist配置我正在安装/复制。如果我将它们全部放在一个bash脚本中,那么所有行都按预期工作。现在我正在清理和分离不同的任务(安装应用程序,安装打印机,网络首选项等)在单独的bash脚本中,也可能在其他一些点单独使用它们。
我现在有一组文件,例如:
但是,其中一些脚本需要用户输入(例如,询问是否应安装特定的打印机)。
这看起来如下:
install.sh
#!/bin/bash
echo
echo 1 | sudo -S sh /Volumes/install/install_printers.sh
install_printers.sh
#!/bin/bash
echo
echo "Install: DE_Brother [y/n]"
read -n 1 question
if [ "$question" = "y" ]
then
echo
lpadmin -p DE_Brother -L "DE" -E -v ipp://10.1.1.100:631/printers/PM_Brother -P /Library/Printers/PPDs/Contents/Resources/Brother.gz -o printer-is-shared=false
cp /Volumes/install/Plist\ files/com.apple.print.custompresets.forprinter.DE-Brother.plist ~/Library/Preferences/
echo "DE_Brother is installed"
else
echo
echo "DE_Brother not installed"
fi
echo
echo "Install: DE_Brother2 [y/n]"
read -n 1 question
if [ "$question" = "y" ]
then
echo
lpadmin -p DE_Brother2 -L "DE" -E -v ipp://10.1.1.100:631/printers/PM_Brother -P /Library/Printers/PPDs/Contents/Resources/Brother2.gz -o printer-is-shared=false
cp /Volumes/install/Plist\ files/com.apple.print.custompresets.forprinter.DE_Brother2.plist ~/Library/Preferences/
echo "DE_Brother is installed"
else
echo
echo "DE_Brother not installed"
fi
现在,当我运行上面的“install.sh”时,我将始终获得if语句的“else”。显然,因为脚本在没有请求的用户输入的情况下继续 read -n 1 question 。
那么我怎样才能在被调用的脚本中请求用户输入?
我对这个话题很新,所以如果有其他建议/改进,请告诉我
欢呼声 儒略