1006-将命令序列输出读入变量

1、介绍
一个命令的输出作为别一个命令的输入,这种命令组合的输出可以被存储到一个变量中。

输入通常是通过stdin或参数传递给命令。输出要么出现在stderr,要么出现stdout。
当我们组合多个命令时,通常将stdin用于输入,stdout用于输出。
些时这些命令被称为过滤器(filter)。我们使用管道(pipe)连接每个过滤器。
管道操作符为|,如:
cmd1 |cmd2 | cmd3

2、实战
ls | cat -n > out.txt

我们可以用下面的方法读取由管道相连的命令序列的输出,叫子shell
cmd_output=$(ls | cat -n)
echo $cmd_output

或是
cmd_output=`ls | cat -n`
echo $cmd_output

3、利用子shell生成一个独立的进程
子shell本身就是独立的进程。可以使用()操作符来定义一个子shell:
children.sh

#!/bin/bash
pwd;
(cd bin; ls);
pwd;

4、通过引用子shell的方式保留空格换行符
$ cat text.txt
1
2
3
$ out=$(cat text.txt)
$ echo $out
1 2 3 # Lost \n spacing in 1,2,3
$ out="$(cat tex.txt)"
$ echo$out
1
2
3
5、

6、

7、

8、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值