今天写完shell脚本调试一下,发现一个有意思的事情~实验并记录一下~
重定向,一般用的时候就直接用了,有时候得去考虑执行细节。
例子一、
写法1:
command 1>output_file 0<input_file 2>error_file
写法2:
command 2>error_file 1>output_file 0<input_file
考虑一下从左至右的执行,写法1,如果input_file有问题了,报错了,2>error_file还没有被执行到,结果错误信息写入terminal。
例子二、
当前目录下只有一个文件
/home/lijungang/temp
|---t.txt
% ls 1>aaa.log
得到的结果目录
/home/lijungang/temp
|---aaa.log
|---t.txt
你猜一下,aaa.log文件的内容应该是一行:t.txt吧?我也这么认为,可惜错了。
aaa.log
t.txt
仔细想一下执行细节:ls命令去扫描当前目录之前,须先建立aaa.log文件,之后扫描的时候已经多了一个文件aaa.log
为了证明这一点,先把当前目录情况,之后执行 ls 1>aaa.log 再查看aaa.log内容,果然仅仅一行:aaa.log
okay!finish this lesson learn.
==>>不能把输出文件写入执行目录
那如果我非要把输出放入当前目录呢?
方法就是让ls执行完毕之后再建立重定向的那个文件吧~
比如一个简单的方法:
1) ls | grep * 1>aaa.log
2) 一个更简单的 ls | 1>aaa.log
分享到:
相关推荐
`/etc/profile`是Linux系统中的一个初始化脚本,它在用户登录时运行,用于设置环境变量和执行启动命令。而“kill”命令则用于终止指定的进程。 在Shell编程中,我们可以使用以下基础概念: 1. **变量**:Shell脚本...
在这一讲中,我们主要是了解一下 Linux 的概况,以及对 Linux 有一个初步的感性认识。 一.什么是Linux? Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU也可以)为硬件平台,完全免费的 UNIX 兼容系统,完全...
1. **Shell简介**:Shell是操作系统提供的一个命令行界面,用户可以通过它输入命令来执行各种操作。常见的Unix/Linux Shell有Bash(Bourne-Again SHell)、C Shell、Korn Shell等,其中Bash是目前最常用的一种。 2....
下面的例子展示了如何使用 Here Documents 创建一个包含多行文本的文件。 ```bash cat > file This is the first line. This is the second line. EOF ``` 在这个例子中,`cat` 命令接收 Here Document 定义的文本...
- **不同之处:** Linux是一个独立的操作系统,而Unix是一系列商业产品的总称。 - **关系:** Linux的设计灵感来源于Unix,但两者在版权和许可证方面有所不同。 #### 三、UNIX/Linux模型 **2.1 UNIX/Linux基本结构...
在本例中,`proc_open`用来执行一个Python程序,以便通过Python进一步控制命令执行。 2. **Python的pty模块**:Python的pty模块提供了伪终端(pseudo-terminal)功能,允许在Python程序中模拟终端交互。`pty.spawn...
- **当前进程**: 在内核空间中,每个内核线程都有一个当前进程的概念,用于跟踪正在执行的操作。 - **几个别的细节**: 包括信号处理、上下文切换等内容。 - **编译和加载**: 介绍如何编译驱动程序以及如何将其加载...
"daemonize-2.0.tar.gz" 是一个在PyPI上发布的开源软件包,它遵循了Python社区常用的打包格式,即源码包。这个压缩文件包含的是"daemonize"库的2.0版本。"daemonize"库主要用于将Python程序转换为守护进程(daemon)...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
- **Debian GNU/Linux:** Debian是一个非常流行的Linux发行版,以其稳定性和社区支持而受到青睐。 - **Debian GNU/Linux的安装:** 这部分详细介绍了如何安装Debian GNU/Linux,包括从选择镜像文件、准备安装介质到...
- `mkdir`就是一个例子,用于创建新目录。在脚本文件中,可以包含一系列命令和控制结构。 - 执行Shell脚本需要赋予其可执行权限,如`chmod +x scriptname.sh`,然后通过`./scriptname.sh`运行。 4. **Shell命令...
在“高级shell编程”的第五部分,我们探讨了五个关键章节,涵盖了高级shell编程技巧,这对于任何想要提升在Linux系统中自动化任务能力的IT专业人士来说都是不可或缺的知识。以下是对每个章节内容的详细阐述: 第25...
硬链接指向同一个文件节点,而符号链接则是指向另一个文件的引用。 #### 12. 动态打印日志文件最新日志 - **命令**: `tail -f` - **描述**: `tail -f`用于连续地显示文件的最后几行,并持续监控文件的新增内容。这...
He4HookInv是一个著名的例子,它通过篡改SST来隐藏其行为。He4HookInv的具体实现涉及到对系统调用的拦截和重定向,使得系统调用看起来像正常的系统行为,增加了检测的难度。 为了对抗Rootkit,开发者和安全专家已经...
例如,在一个PC上运行的Windows操作系统就是一个典型的虚拟化例子。其中,物理的PC(宿主机)可以支持一个或多个虚拟机(Guest),每个虚拟机都可以运行不同的操作系统(如Windows、Linux等)。这样,用户可以在同一...
- 在这个例子中,通过重定向和命令拼接创建了一个名为`test`的文件。`command`文件包含了创建和编辑`test`文件的一系列命令,如设置变量并将其写入文件,以及将文件内容追加到其他文件。最后,`test`文件作为批处理...
Lodop的API接口丰富,覆盖了打印设置、页面布局、页眉页脚、页面分隔等诸多方面,使得开发者可以轻松控制打印过程中的每一个细节。 以下是Lodop的一些关键知识点: 1. **安装与集成**:`install_lodop.exe`是Lodop...
- **问题背景:** Ruby on Rails是一个全栈Web框架,广泛应用于现代Web应用开发。 - **解决方案:** 本书介绍了如何在Rails项目中集成Redis。 - **讨论细节:** - 可以使用`redis-rails` gem来简化配置过程。 -...
在这个例子中,`work()`函数在一个无限循环中每60秒打印一次日志信息。 4. `start_domain()`函数是创建守护进程的核心。首先,调用`domain_init()`初始化环境,然后通过两次`Fork()`来实现子进程的双重 fork 模式,...