如何将bash上的echo保存为变量?

时间:2016-01-26 03:21:44

标签: bash

如何进行回声并保存为变量?

sm@tp1:~/pc$ php get.php | grep "PhP" | cut -c24-33 | sed -n 1p
PhP 47.813

这是输出

sm@tp1:~/pc$ out=$(php get.php | grep "PhP" | cut -c24-33 | sed -n 1p) | echo $out
sm@tp1:~/pc$

但在这里没有输出

2 个答案:

答案 0 :(得分:2)

在第二行中,您将输出分配给变量out。如果您以后想查看变量out是什么,请稍后输入echo $out

sm@tp1:~/pc$ out=$(php get.php | grep "PhP" | cut -c24-33 | sed -n 1p)
sm@tp1:~/pc$ echo $out

换句话说,不要使用管道|而只是在另一条线路上回显,或者只能用分号;替换该管道。

sm@tp1:~/pc$ out=$(php get.php | grep "PhP" | cut -c24-33 | sed -n 1p); echo $out

答案 1 :(得分:1)

添加,在这种情况下

    out=$(php get.php | grep "PhP" | cut -c24-33 | sed -n 1p)|echo $out

每个命令都应该在单独的子shell中运行,你可以将stdout作为stdin来管道,但是传递变量是不可能的。 在你的情况下变量是