当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 14:31 
头像

注册: 2012-04-14 11:00
帖子: 456
系统: ArchLinux
送出感谢: 3
接收感谢: 10
脚本就叫script.sh吧, 我希望是输入是一串文件的序列:
代码:
script.sh file1.txt file2.tar this\ is\ file3.7z

这样,然后输出就是
file1.txt
file2.tar
this is file3.7z

说白了就是正确的处理转义空格,要不然用$@会把他断开, 识别成
file1.txt
file2.tar
this
is
file3.7z
这样

求教


_________________
My personal blog

毛概老师:大家知道一个有名的空想社会主义吗?同学:乌邦图

用Linux有感:
得,用了1年多linux,感觉自己还是个菜鸟。。。
用了2年了,感觉自己还是一般菜。。。
第3年...头半年感觉和去年没啥变化。。。后半年算是能发挥点主观能动性了吧。。
第4年。。感觉自己算个伪Geek了
第5年,虽然有同学管我叫大神,但我还是觉得自己菜的一笔。。


最后由 PithornDawn 编辑于 2015-01-06 15:12,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义符
帖子发表于 : 2015-01-06 14:45 

注册: 2011-02-14 17:46
帖子: 907
送出感谢: 3
接收感谢: 124
没看明白你要干什么……


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义符
帖子发表于 : 2015-01-06 14:58 
头像

注册: 2012-04-14 11:00
帖子: 456
系统: ArchLinux
送出感谢: 3
接收感谢: 10
rosynirvana 写道:
没看明白你要干什么……

就是正确的获取参数,处理好文件名里面有空格的情况。


_________________
My personal blog

毛概老师:大家知道一个有名的空想社会主义吗?同学:乌邦图

用Linux有感:
得,用了1年多linux,感觉自己还是个菜鸟。。。
用了2年了,感觉自己还是一般菜。。。
第3年...头半年感觉和去年没啥变化。。。后半年算是能发挥点主观能动性了吧。。
第4年。。感觉自己算个伪Geek了
第5年,虽然有同学管我叫大神,但我还是觉得自己菜的一笔。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 15:55 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
你参数用''包括吧。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 16:00 
头像

注册: 2010-04-10 16:14
帖子: 2903
系统: Arch Linux
送出感谢: 8
接收感谢: 69
比如这样?
代码:
#!/bin/bash
for i in $(seq 1 $#)
do
    echo $1
    shift
done


_________________
dz,U,EIS. cies.
dz-cies@github
小香猪杀手@cc98.org


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 16:05 
头像

注册: 2010-04-10 16:14
帖子: 2903
系统: Arch Linux
送出感谢: 8
接收感谢: 69
这样也行,好处是不需要 shift,不会破坏原来的参数,坏处是用了 eval,虽然我也说不上用 eval 到底有什么不好……
代码:
#!/bin/bash
for i in $(seq 1 $#)
do
    eval "echo \$$i"
done


_________________
dz,U,EIS. cies.
dz-cies@github
小香猪杀手@cc98.org


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 16:35 

注册: 2011-02-14 17:46
帖子: 907
送出感谢: 3
接收感谢: 124
就是说要脚本自动识别出 This is a file.7z这是一个文件名?


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-06 19:32 
头像

注册: 2008-09-18 13:11
帖子: 2781
送出感谢: 1
接收感谢: 453
代码:
$ cat script.sh
#! /bin/bash
for i in "$@"; do
   echo "$i"
done
$ ./script.sh file1.txt file2.tar this\ is\ file3.7z
file1.txt
file2.tar
this is file3.7z
$


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-08 16:18 
头像

注册: 2012-04-14 11:00
帖子: 456
系统: ArchLinux
送出感谢: 3
接收感谢: 10
astolia 写道:
代码:
$ cat script.sh
#! /bin/bash
for i in "$@"; do
   echo "$i"
done
$ ./script.sh file1.txt file2.tar this\ is\ file3.7z
file1.txt
file2.tar
this is file3.7z
$

额。。原来居然这么简单。。


_________________
My personal blog

毛概老师:大家知道一个有名的空想社会主义吗?同学:乌邦图

用Linux有感:
得,用了1年多linux,感觉自己还是个菜鸟。。。
用了2年了,感觉自己还是一般菜。。。
第3年...头半年感觉和去年没啥变化。。。后半年算是能发挥点主观能动性了吧。。
第4年。。感觉自己算个伪Geek了
第5年,虽然有同学管我叫大神,但我还是觉得自己菜的一笔。。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 求教关于shell脚本中参数中的转义空格
帖子发表于 : 2015-01-08 20:41 
头像

注册: 2011-06-26 18:28
帖子: 240
送出感谢: 3
接收感谢: 4
PithornDawn 写道:
astolia 写道:
代码:
$ cat script.sh
#! /bin/bash
for i in "$@"; do
   echo "$i"
done
$ ./script.sh file1.txt file2.tar this\ is\ file3.7z
file1.txt
file2.tar
this is file3.7z
$

额。。原来居然这么简单。。


ilinunix@notebook:~$ cat ./script.sh
for i;do
echo $i
done
ilinunix@notebook:~$ ./script.sh file1.txt file2.tar this\ is\ file3.7z
file1.txt
file2.tar
this is file3.7z


_________________
http://www.linux-unix.asia
720P电影,无损音乐,Linux教程资料:http://hdcity.leniter.org/promotionlink.php?key=64472c449c1ade6ed71c4de838745c67


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Bing [Bot] 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译