当寻找的路径,可执行文件或检查,如果你在Unix shell中输入命令的名称会发生什么,有不同的公用事业过多(which
,type
,command
,whence
,where
,whereis
,whatis
,hash
,等)。
我们经常听说which
应该避免。为什么?我们应该用什么来代替?
我有一个将数据输出到 stdout ( command1 -p=aaa -v=bbb -i=4
)的命令。输出行可以具有以下值:
rate (10%) - name: value - 10Kbps
Run Code Online (Sandbox Code Playgroud)
我想 grep 该输出以存储该“速率”(我想管道在这里会很有用)。最后,我希望该速率是第二个命令的参数值(假设command2 -t=${rate}
)
我这边看起来很棘手;我想更好地了解如何使用管道、grep、sed 等。
我已经尝试了很多这样的组合,但我对这些感到困惑:
$ command1 -p=aaa -v=bbb -i=4 | grep "rate" 2>&1 command2 -t="rate was "${rate}
Run Code Online (Sandbox Code Playgroud) 所以我有一个脚本,当我给它两个地址时,它将搜索两个 HTML 链接:
echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
Run Code Online (Sandbox Code Playgroud)
我想将它发送到wget
然后将输出保存在一个名为temp.html
. 我试过这个,但它不起作用。有人可以解释原因和/或给我一个解决方案吗?
#!/bin/bash
url = echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
wget $url
Run Code Online (Sandbox Code Playgroud) 我有一个名为my_file.txt
的文件,其内容只是 string Hello
。如何将其内容重定向到命令echo
?
我知道我有命令less
, cat
, more
... 但我需要用echo
.
我试过这个:
$ cat my_file.txt | echo
Run Code Online (Sandbox Code Playgroud)
还有这个:
$ echo < my_file.txt
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,它在标准输出中只出现一个空白,而不是 my_file.txt 的内容。
我怎么能那样做?
shell ×3
command-line ×2
arguments ×1
bash ×1
echo ×1
history ×1
output ×1
pipe ×1
portability ×1
which ×1