分页: 1 / 1

求助:完整保留屏幕输入

发表于 : 2011-08-09 15:53
chengmoYS
目的:在脚本中实现把从终端输入的所有字符都保留下来

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

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

谢谢。

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

发表于 : 2011-08-09 15:54
eexpress
输入?用''包括起来

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

发表于 : 2011-08-09 16:16
chengmoYS
比方说,我使用read读入 空格符+制表符+a+空格符,然后使用echo除变量还是得到 空格符+制表符+a+空格符。

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

发表于 : 2011-08-09 16:51
yongyou
直接加个反引号?

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

发表于 : 2011-08-09 17:04
chengmoYS
[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楼说的反引号,均得不到预期结果。

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

发表于 : 2011-08-09 17:42
yongyou
while IFS=# read name; do echo "$name"; done

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

发表于 : 2011-08-09 17:54
yongyou
yongyou 写了:while IFS=# read name; do echo "$name"; done

刚刚这是从网上找的,后来查了查,应该是把IFS默认的空格分割符给替换成#了。。。。。。 :em06
如果有错请指教啊

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

发表于 : 2011-08-09 19:19
fnan
awk 'BEGIN{getline a;print "[" a "]"}'

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

发表于 : 2011-08-10 9:26
chengmoYS
6楼和8楼好像都能得到预期结果
谢谢
我再看看是怎么回事

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

发表于 : 2011-08-10 11:42
eexpress
2楼说的双引号???
:em04

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

发表于 : 2011-08-10 14:34
chengmoYS
eexpress 写了:输入?用''包括起来
请问2楼说的啥?我眼神不好,望指教。

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

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

试试这。

代码: 全选

● perl -e '$_=<STDIN>; print $_;'

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

发表于 : 2011-08-17 1:39
bzhao
大家都很强!