[讨论]麻烦高手给详细讲一下这个命令。

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
百草谷居士
帖子: 3921
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

[讨论]麻烦高手给详细讲一下这个命令。

#1

帖子 百草谷居士 » 2008-02-25 7:25

不止一次的看到过类似的,下载后直接对下载文件进行操作,将两个命令合到一行:

代码: 全选

wget -q http://www.virtualbox.org/debian/innotek.asc -O- | sudo apt-key add -
我猜想,就是通过|管道操作符把第一个命令产生的文件传递给第二个命令。我只知道|可以作为管道传递标准输入输出。对于这样传递文件是通用的吗?
|符号前后是不是必须加上空格?
上面wget和apt-key命令最后的-符号是不是就是起到代替那个生成文件的作用?
命令行中的-符号还有什么作用?
类似上面的命令,除了下载,还有什么可以采用上面的形式?
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#2

帖子 aBiNg » 2008-02-25 9:27

管道的作用是传递啊。至于这个命令就这么多了。

"-O-" == "-O -"
O后面的"-",这种情况下是指标准输出;而apt-key最后的"-"指从标准输入获得,管道起到桥接作用。

" | " == "|"
只要是标准输出与标准输入的模式,管道大概都能用。
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#3

帖子 iblicf » 2008-02-25 9:28

这个是添加 apt 公钥的吧 ...

wget -q # silent 模式,turn off output
http://www.virtualbox.org/debian/innotek.asc # url
-O #wget 参数,输出到文件
- #重定向到标准输出(下载的文件)
| #管道. 把上一个命令的输出传给下一个命令,或是shell. 这是连接命令的一种方法.
sudo apt-key add #添加公钥
- #重定向(从标准输入读,innotek.asc 文件)

"-"字符的解释应依赖于它出现的环境 , 可能是 减号/参数前缀/重定向 ...
头像
dakai
帖子: 98
注册时间: 2006-08-26 22:02

#4

帖子 dakai » 2008-02-25 9:38


受教了
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#5

帖子 bones7456 » 2008-02-25 9:40

转到 Shell脚本
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#6

帖子 eexpress » 2008-02-25 9:47

bones7456 写了:转到 Shell脚本
:?: :?: :?:

asc格式的gpg公钥。

都不man的。
● 鸣学
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#7

帖子 bones7456 » 2008-02-25 9:52

谁知道ee在说什么? :shock:
关注我的blog: ε==3
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

#8

帖子 Strange » 2008-02-25 10:06

ee在重复iblicf的话
ニンニク入れますか?
x60 with gentoo
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#9

帖子 eexpress » 2008-02-25 10:07

3个意思。3行。

能看懂的,有帮助的。 :lol:
● 鸣学
头像
百草谷居士
帖子: 3921
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

#10

帖子 百草谷居士 » 2008-02-25 10:34

明白了!
原来 - 符号用来把本来应该保存为普通文件的内容输出到标准输出上,同样也把 正常从普通文件获取的内容转到标准输入上。
一句话: - 就是表示标准输入输出,可以作为普通文件名使用。
所以就可以使用 | 管道符号了。
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
回复