这可能是许多常见问题解答 - 而不是使用:
cat file | command
Run Code Online (Sandbox Code Playgroud)
(这被称为无用的猫),正确的方式应该是:
command < file
Run Code Online (Sandbox Code Playgroud)
在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.
更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat
别的东西(gzcat
,echo
,...),添加第二个文件或插入新的过滤器(pv
,mbuffer
,grep
...).
我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat
)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.
我的逻辑是否正确(第二个原因)?
我在制作一个bash脚本时遇到了一些麻烦
这是我正在使用的代码.
cat /crawler/bc_daemon.php | sed "s/PORT2/${PORT}/ig" | sed 's/IP2/IPADDRESS/ig' | \
sed 's/USER2/USER/ig' | sed 's/PASS2/PASSWORD/ig' > bc_daemon.php
cat /crawler/bc_layout.php | sed "s/GITHUB/${REPO}/ig" | sed "s/COINNAME/${NAME}/ig" > bc_layout.php
Run Code Online (Sandbox Code Playgroud)
奇怪的是线条单独从脚本中工作.但是在剧本里面我得到了这个
sed: -e expression #1, char 17: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)
当它需要打印变量时,我正在使用''它可以在字面上和""
在我看来,这应该是有效的.但我错过了我的错误