我有重定向问题:
$ which python3
Run Code Online (Sandbox Code Playgroud)
给我
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
Run Code Online (Sandbox Code Playgroud)
和
$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
Run Code Online (Sandbox Code Playgroud)
给我
lrwxr-xr-x 1 root admin 9 5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7
Run Code Online (Sandbox Code Playgroud)
但
which python3 | ls -l
Run Code Online (Sandbox Code Playgroud)
不要给我同样的结果。
你知道为什么吗 ?什么是重定向的正确命令?
我正在使用 OSX。
我不得不说,以下问题将上一个命令的输出作为参数传递给下一个,可能与此相同,但是如果我查看给出的答案,我就迷路了。为了有用,它们需要比这里给出的更高级的知识或学习。
Kus*_*nda 12
ls
不从管道读取。事实上,ls
根本不使用它的标准输入。
相反,您必须ls -l
通过以下命令行传递您想要运行的内容ls
:
ls -l "$( which python3 )"
Run Code Online (Sandbox Code Playgroud)
这在命令行上使用命令替换,ls -l
其将扩展为which
命令的输出。然后,这将用作 的命令行参数ls
。
或者:
ls -l "$( command -v python3 )"
Run Code Online (Sandbox Code Playgroud)
有关的:
小智 5
其他答案很好,但这也很方便:
which python3 | xargs ls -l
Run Code Online (Sandbox Code Playgroud)
xargs
从stdin
指定程序中获取值并将它们作为命令行参数附加到指定程序中。
归档时间: |
|
查看次数: |
1976 次 |
最近记录: |