求助:完整保留屏幕输入

sh/bash/dash/ksh/zsh等Shell脚本
回复
chengmoYS
帖子: 125
注册时间: 2007-10-22 22:40

求助:完整保留屏幕输入

#1

帖子 chengmoYS » 2011-08-09 15:53

目的:在脚本中实现把从终端输入的所有字符都保留下来

我们都知道,在shell中使用read命令时,它会自动把前导空格和尾随空格都删除掉,
另外如果我输入就是空格或者制表符,read读入后,其长度为空。

请问,如果把所有输入,不管是空格什么的都保留下来。

谢谢。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助:完整保留屏幕输入

#2

帖子 eexpress » 2011-08-09 15:54

输入?用''包括起来
● 鸣学
chengmoYS
帖子: 125
注册时间: 2007-10-22 22:40

Re: 求助:完整保留屏幕输入

#3

帖子 chengmoYS » 2011-08-09 16:16

比方说,我使用read读入 空格符+制表符+a+空格符,然后使用echo除变量还是得到 空格符+制表符+a+空格符。
yongyou
帖子: 4
注册时间: 2011-08-05 21:30

Re: 求助:完整保留屏幕输入

#4

帖子 yongyou » 2011-08-09 16:51

直接加个反引号?
chengmoYS
帖子: 125
注册时间: 2007-10-22 22:40

Re: 求助:完整保留屏幕输入

#5

帖子 chengmoYS » 2011-08-09 17:04

[user@localhost ~]$ read name && echo $name
abc
abc
[user@localhost ~]$ read name && echo $name
\ a\ bc\ d
a bc d
[user@localhost ~]$ read name && echo $name
\t\t abc
tt abc
[user@localhost ~]$ read name && echo $name
"ac \ c \e ef"
"ac c e ef"
[user@localhost ~]$ read name && echo $name
" \sdf \sdf \ "
" sdf sdf "
[user@localhost ~]$


2楼说的双引号和4楼说的反引号,均得不到预期结果。
yongyou
帖子: 4
注册时间: 2011-08-05 21:30

Re: 求助:完整保留屏幕输入

#6

帖子 yongyou » 2011-08-09 17:42

while IFS=# read name; do echo "$name"; done
yongyou
帖子: 4
注册时间: 2011-08-05 21:30

Re: 求助:完整保留屏幕输入

#7

帖子 yongyou » 2011-08-09 17:54

yongyou 写了:while IFS=# read name; do echo "$name"; done

刚刚这是从网上找的,后来查了查,应该是把IFS默认的空格分割符给替换成#了。。。。。。 :em06
如果有错请指教啊
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 求助:完整保留屏幕输入

#8

帖子 fnan » 2011-08-09 19:19

awk 'BEGIN{getline a;print "[" a "]"}'
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
chengmoYS
帖子: 125
注册时间: 2007-10-22 22:40

Re: 求助:完整保留屏幕输入

#9

帖子 chengmoYS » 2011-08-10 9:26

6楼和8楼好像都能得到预期结果
谢谢
我再看看是怎么回事
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助:完整保留屏幕输入

#10

帖子 eexpress » 2011-08-10 11:42

2楼说的双引号???
:em04
● 鸣学
chengmoYS
帖子: 125
注册时间: 2007-10-22 22:40

Re: 求助:完整保留屏幕输入

#11

帖子 chengmoYS » 2011-08-10 14:34

eexpress 写了:输入?用''包括起来
请问2楼说的啥?我眼神不好,望指教。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助:完整保留屏幕输入

#12

帖子 eexpress » 2011-08-10 14:55

我那是单引号嘛。我开始以为你是要管道读入。
lol
你如果要读入数据,最好别用这read。它这是作为一个解析读入的,喜欢处理成简单格式,省略一些东西。

试试这。

代码: 全选

● perl -e '$_=<STDIN>; print $_;'
● 鸣学
头像
bzhao
帖子: 254
注册时间: 2008-07-05 2:15
系统: XUbuntu

Re: 求助:完整保留屏幕输入

#13

帖子 bzhao » 2011-08-17 1:39

大家都很强!
回复