我对脚本编写还很陌生(自学),但并非一无所知。我正在尝试为程序版本集制作一个简单的安装程序脚本,但遇到了一些困难。这是代码的修改版本
(
echo "deb http://blah.blahblah.net/blah/blah/ubuntu precise main" | tee/etc/apt/sources.list.d/blahblah.list
echo "deb-src http://blah.blahblah.net/blah/blah/ubuntu precise main" | tee -a /etc/apt/sources.list.d/blahblah.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys blah000000
apt-get update
`
echo "please select the Version of blah you want ************ 1)blah1 2)blah2 3)blah3 4)All (1,2,3) 5)I will do this manualy (in the software center)"
read n
case $n in
1) apt-get install blah1;;
2) apt-get install blah2;;
3) apt-get install blah3;;
4) apt-get install blah1 blah2 blah3;;
5) echo "Thank you and have a nice day. :-)" exit;;
*) invalid option;;
esac
)
它将完成 apt 更新,但随后会显示此消息
(
blah 1-2-3-installer_beta.sh: 22: blah 1-2-3-installer_beta.sh: Syntax error: EOF in backquote substitution
)
有什么建议吗......(旁注:“blah”不重要,我已经检查过了)
我正在运行 Ubuntu 14.04.3 “Trusty” 和 Linux Mint 17.3 “cinnamon”
答案1
您的代码中有一个反引号 ( `
),但结尾的反引号并未对其进行补充。不清楚您用反引号做什么。
反引号用于命令替换,也开始用于$()
命令替换,而不是旧的和有问题的反引号。
为了解决当前的问题,只需注释掉`
该行后的单反引号()apt-get update
,即:
apt-get update
# `
echo "please select the Version of blah you want ************ 1)blah1 2)blah2 3)blah3 4)All (1,2,3) 5)I will do this manualy (in the software center)"