簡體   English   中英

管道與Apt包管理器

[英]Pipes with Apt Package Manager

我有兩個文件,第一個名為packages.txt ,它是包列表:

gcc
emacs
vim
python
...

現在,當我運行命令時

cat packages.txt | tr '\n' ' ' | apt-get install

這基本上將文件轉換為由空格分隔的一行包。 它不會在packages.txt中安裝所有packages.txt. (我認為它只安裝第一個)有誰知道為什么?

嘗試使用xargs

xargs -d '\n' -- apt-get install < packages.txt

要么

xargs -d '\n' -n 1 -- apt-get install < packages.txt

確保packages.txt不是DOS格式:

sed -i 's|\r||' packages.txt

管道運算符將一個應用程序的stdout發送到下一個應用程序(作為stdin 。不幸的是, apt-get不從stdin讀取。相反, apt-get在命令行上apt-get了一個包列表。我想你正在嘗試做什么更符合

apt-get install $(cat packages.txt | tr '\n' ' ')

要么

apt-get install `cat packages.txt | tr '\n' ' '`

也就是說評估文件列表,並將其作為參數傳遞給單個apt-get調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM