重定向专题提供重定向的最新资讯内容,帮你更好的了解重定向。
我希望能够根据命令行开关将我脚本的某些输出重定向到/ dev / null. 我不知道该怎么做. 以愚蠢的方式,它会是这样的(以一种过于简化的方式): #!/bin/sh REDIRECT= if [ $# -ge 1 -a "$1" = "--verbose" ]; then echo "Verbose mode." REDIRECT='1>&2 > /dev/null
我有一个过去工作的脚本,它依赖于使用TCP将命令(实际上要处理的文件名)发送到侦听端口的进程.所以我可以把它发起并告诉它听,说端口9999. 作为一个快速黑客,我将使用如下命令设置流重定向到端口9999: exec 3<> /dev/tcp/127.0.0.1/9999 然后我可以在我想要批处理所有文件的目录中运行一个find命令,比如 find . -name "*.xml" -exec pri
我正在为Proxmox 4服务器设置一个从Proxmox 3.4迁移OpenVZ转储的脚本.脚本scp备份,还原它们等等. 在这个过程中,我想擦除/ etc / network / interfaces并使用“pct set”设置一个新的. 我的问题如下:要将默认基本配置写入/ etc / network / interface,我使用lxt-attach.我误用了这个: lxc-attach -
我正在编写一个 Bash脚本,我希望所有命令在发生时都能被回显.我知道我需要使用set -x和set x分别关闭和打开此行为( SOF post here).但是,它不会回显所有内容,即I / O重定向. 例如,假设我有这个非常简单的Bash脚本: set -x ./command1 > output1 ./command2 arg1 arg2 > output2 这将是输出 + ./comman
在对 Piping a file through tail and head via tee的回复中,在使用大文件时,在以下构造中观察到了头部的奇怪行为: #! /bin/bash for i in {1..1000000} ; do echo $i ; done > /tmp/n ( tee >(sed -n '1,3p' >&3 ) < /tmp/n | tail -n2 )
我在重定向STDOUT和STDERR时遇到了一个奇怪的问题.以下按预期工作: $gvim --version > /tmp/version.out $ls -l /tmp/version.out -rw-r--r--. 1 blah blah 3419 Jun 27 17:28 /tmp/version.out 输出文件中有3419个字符,当我查看文件时,它包含我所期望的内容. 但是,当我执行以下
如果我将命令的输出重定向到它读取的同一文件,则其内容将被删除. sed 's/abd/def/g' a.txt > a.txt 有人可以解释为什么吗 重定向的第一件事是打开文件进行写入,从而清除任何现有内容. sed然后尝试读取你刚刚创建的这个空文件,什么都不做.然后关闭文件,不包含任何内容.
我想要一个脚本将stdin和stderr重定向到一个文件,做一堆东西,然后撤消那些重定向并对文件内容采取行动.我尝试着: function redirect(){ exec 3>&1 exec 4>&2 exec 1>outfile 2>&1 } function undirect(){ exec 1>&3 exec 2>&4 } echo first redirec
要在unixy环境中截断文件,通常会使用: $> file 在bash(也是破折号)中,文件被截断(或者如果它不存在则创建),然后提示返回.在zsh中,文件被截断/创建,但它会挂起.您必须使用Ctrl-C才能再次使用提示. 重定向非空输出可以正常工作: zsh$cat nonempty.file > file zsh$ 问题是: 是否期望这种行为? zsh错了吗? 我不是真正的zsh用户,但似乎>
这是一个简单的程序. class Redirection { public static void main (String args[]){ System.out.println("Hello World_Stdout"); System.err.println("Hello World_Stderr"); } } 我想在控制台上看到所有输出,但同时我想将stdout和std
如何使用以下命令? echo "something" > "$f" 其中$f将像文件夹/ file.txt一样创建文件夹文件夹,如果不存在? 如果我无法做到这一点,我如何可以将目录’a’中的所有文件夹(无内容)复制到目录’b’? 例如我有 A / F1 / 一个/ F2 / A / F3 / 我希望有 B / F1 / B / F2 / B / F3 / 其他答案是使用外部命令“dirname”.
现在我使用exec将stderr重定向到一个错误日志 exec 2>> ${errorLog} 唯一的缺点是我必须用一个时间戳开始每个运行,因为exec只是将文本直接推入日志文件.有没有办法重定向stderr,但允许我附加文本,如时间戳? 这很有趣我问过一个知道bash的人,他告诉我: foo() { while IFS='' read -r line; do echo "$(date) $lin
Bourne shell中的2& 1重定向将输出发送到文件描述符2(默认为标准错误),并将其发送到文件描述符1(默认为标准输出). 但是,2< 1重定向是做什么的? 它是否发送stderr到stdin? 我的理论是,它将stdin发送到stderr(例如与1& 2& 2)相同),但是从实验上说,情况并非如此: $perl -e 'print "OUT\n"; print STDERR "ERR\n
我想在“ Bash – How to pass arguments to a script that is read via standard input”帖子中再多一点. 我想创建一个脚本,它采用标准输入,并在传递参数的同时远程运行它. 我正在建立的脚本的简化内容: ssh server_name bash <&0 如何采取以下接受参数的方法并将其应用于我的脚本? cat script.sh |
我想知道哪个选项基本上更快. 最让我感兴趣的是重定向机制.我怀疑该文件是在程序开始时打开的./program>文件并在最后关闭.因此,每当程序输出一些东西时,它应该只是写入文件,就像听起来一样简单.是这样吗?然后我猜两种选择在速度方面都应该具有可比性. 或者它可能是一个更复杂的过程,因为操作系统必须执行更多操作? 这些选项之间没有太大区别(除了将文件作为严格选项降低了程序的灵活性). 为了比较这两
我有一个bash脚本,里面有一些scp命令. 它工作得很好但是,如果我尝试使用“./myscript.sh> log”重定向我的标准输出,只有我的显式回声显示在“日志”文件中. scp输出缺失. if $C_SFTP; then scp -r $C_SFTP_USER@$C_SFTP_HOST:$C_SOURCE "$C_TMPDIR" fi 好的,我现在该怎么办? 谢谢 scp正在使用交互
有谁知道如何在食谱上使用here-document重定向? test: sh <<EOF echo I Need This echo To Work ls EOF 我找不到任何解决方案尝试通常的反斜杠方法(基本上以一行中的命令结束). 理由: 我有一组多行配方,我想通过另一个命令代理(例如,sh,docker). onelinerecipe := echo l1 define
为了监视系统的目的,我需要将top命令的输出重定向到一个文件中,这样我就可以使用/解析它. 我试图做同样的事情,但CPU性能统计数据没有保存在文件中看到 屏幕截图. 预期产量: [root@v100 /usr/local/bin]# top last pid: 6959; load averages: 0.01, 0.03, 0.03
以下命令输出不同的结果,具体取决于它是在bash还是zsh中运行: ls -l > x | wc -l 如果在非空目录中执行,bash总是给出0,而zsh给出正确数量的文件. x包含ls -l的输出,如预期的那样. 为什么它不能用于bash? 阅读zshmisc手册页中的 MULTIOS documentation.这是zsh的一个特性,它使输出同时重定向到多个文件,它也可以是一个管道. 例如 l
1. CentOS下配置端口转发 将80端口请求转发至8080 在root账户下面运行一下命令: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 另外如果防火墙重新启动,该命令就会失效,可以使用下面的命令把该规则保存到iptables里面。 service iptables save