我正在编写一个 shell 脚本,用于从列表中安装软件包。代码如下:
apps="$(cat ./foo/bar/packages.txt)"
apt install $apps
但是,我收到错误
E:命令行选项“i”[来自-info]与其他选项结合使用时无法理解。
看起来packages.txt
像以下所有内容都在一行中:
accountsservice acl acpi-support acpid ...
提前致谢!
答案1
像这样的调用的问题是packages.txt
文件中的错误数据可能会导致损坏。
在这种情况下,文件中有一个条目-info
。这意味着您正在运行的命令将类似于
apt install pkg1 pkg2 ... -info pkg10 pkg11 ...
将-info
被解释为命令的选项apt
。它不喜欢这样,所以报告Command line option 'i' [from -info] is not understood
。
--
您可以通过在安装之前添加一个来防止这样的单词被解释
apt -- install $apps
这--
意味着“没有更多选项”,因此-info
现在将被理解为包名称。当使用未知输入时,这是一件好事。
但您仍然需要修复packages.txt
文件以删除错误的条目。