首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
Distributions
›
Ubuntu
›
Fedora
›
CentOS
中文资源站
›
网易开源镜像站
V2EX
›
Linux
在 bash 脚本中回车符号被忽略
ivito
·
fireboyvt
·
2016-01-12 18:34:38 +08:00
· 3529 次点击
这是一个创建于 3380 天前的主题,其中的信息可能已经有所发展或是发生改变。
在 bash 中直接执行 ps 获得以下结果:
PID TTY TIME CMD
8131 pts/19 00:00:00 bash
8159 pts/19 00:00:00 zsh
9907 pts/19 00:00:00 ps
18350 pts/19 00:00:00 php
18353 pts/19 00:00:00 php
18362 pts/19 00:00:00 php
而如果执行如下脚本
process=$(ps)
echo $process
获得的结果如下:
ID TTY TIME CMD 8131 pts/19 00:00:00 bash 8159 pts/19 00:00:00 zsh 9755 pts/19 00:00:00 sh 9756 pts/19 00:00:00 ps 18350 pts/19 00:00:00 php 18353 pts/19 00:00:00 php 18362 pts/19 00:00:00 php
回车不见了,这是为什么呢?
00:00:00
pts
PHP
bash
3 条回复
•
2016-01-12 21:02:48 +08:00
1
18000rpm
2016-01-12 18:54:43 +08:00
用 echo "$process"
http://stackoverflow.com/questions/613572/capturing-multiple-line-output-to-a-bash-variable
2
jsfaint
2016-01-12 20:14:33 +08:00 via Android
是 echo 后边的都被当做一行了……
实际上那个$process 是有换行的。
for line in $process
do
echo $line
done
就可以分别显示每行内容
3
ivito
OP
2016-01-12 21:02:48 +08:00
@
18000rpm
1 楼正解,不加引号的话 echo 把$process 分割成好多个参数了
@
jsfaint
确实,用 for 循环的话可以换行,但是输出格式全乱了, for 会把空格什么的都当成分割符号
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
2971 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms ·
UTC 14:36
·
PVG 22:36
·
LAX 07:36
·
JFK 10:36
Developed with
CodeLauncher
♥ Do have faith in what you're doing.