linux中 [: too many arguments 错误怎么处理?

lqb2008 2013-12-09 09:28:39
shell中有这么一段代码

if [ -e ${v_file_name} ]; then

。。。。。

fi

在aix(6.1.0.0)中执行没有问题,到linux(Red Hat Enterprise Linux Server release 6.1 (Santiago))中执行就报如题的错误,请问这是什么原因?该怎么解决?谢谢!!!
...全文
2397 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
linux-c 2013-12-11
  • 打赏
  • 举报
回复
引用 10 楼 lqb2008 的回复:
[quote=引用 9 楼 magi1201 的回复:] [quote=引用 8 楼 lqb2008 的回复:] [quote=引用 7 楼 magi1201 的回复:] 是有多个文件吗?文件是否需要一个一个的进行-e 判断呢?如需要,改改脚本吧。
不需要,只是数据量比较大,分了文件,文件名中加了个序号,只判断有文件存在就行,该怎么改呢?[/quote] 楼主可以提供一个${v_file_name} 具体的值出来吗,方便提供建议[/quote] file_name_001.dat file_name_002.dat file_name_003.dat 就以上这种![/quote] 分别判断吧,先解析有多少文件名称,然后依次判断是否存在
姜小白- 2013-12-10
  • 打赏
  • 举报
回复

weblogic@z174774C6c16g120gs11-1:~/file> ll
total 0
-rw-r--r-- 1 weblogic bea 0 2013-12-10 08:13 file1.txt
-rw-r--r-- 1 weblogic bea 0 2013-12-10 08:14 file2.txt
weblogic@z174774C6c16g120gs11-1:~/file> name="file1.txt file2.txt"
weblogic@z174774C6c16g120gs11-1:~/file> echo $name | cut -d ' ' -f1
file1.txt
weblogic@z174774C6c16g120gs11-1:~/file> file=
weblogic@z174774C6c16g120gs11-1:~/file> echo $file | cut -d ' ' -f1

weblogic@z174774C6c16g120gs11-1:~/file> echo $?
0
weblogic@z174774C6c16g120gs11-1:~/file> 
分割,取第一个域,然后判断第一个域值是否为空就可以了
姜小白- 2013-12-10
  • 打赏
  • 举报
回复
引用 10 楼 lqb2008 的回复:
不需要,只是数据量比较大,分了文件,文件名中加了个序号,只判断有文件存在就行,该怎么改呢? 提供一个${v_file_name} 具体的值出来 file_name_001.dat file_name_002.dat file_name_003.dat 就以上这种!
一个值就有可能是多个文件的吧 那这样就要拆开处理了
lqb2008 2013-12-10
  • 打赏
  • 举报
回复
引用 9 楼 magi1201 的回复:
[quote=引用 8 楼 lqb2008 的回复:] [quote=引用 7 楼 magi1201 的回复:] 是有多个文件吗?文件是否需要一个一个的进行-e 判断呢?如需要,改改脚本吧。
不需要,只是数据量比较大,分了文件,文件名中加了个序号,只判断有文件存在就行,该怎么改呢?[/quote] 楼主可以提供一个${v_file_name} 具体的值出来吗,方便提供建议[/quote] file_name_001.dat file_name_002.dat file_name_003.dat 就以上这种!
姜小白- 2013-12-10
  • 打赏
  • 举报
回复
引用 8 楼 lqb2008 的回复:
[quote=引用 7 楼 magi1201 的回复:] 是有多个文件吗?文件是否需要一个一个的进行-e 判断呢?如需要,改改脚本吧。
不需要,只是数据量比较大,分了文件,文件名中加了个序号,只判断有文件存在就行,该怎么改呢?[/quote] 楼主可以提供一个${v_file_name} 具体的值出来吗,方便提供建议
lqb2008 2013-12-10
  • 打赏
  • 举报
回复
引用 7 楼 magi1201 的回复:
[quote=引用 6 楼 lqb2008 的回复:] [quote=引用 3 楼 magi1201 的回复:] ${v_file_name} 这个参数中间应该有空格或特殊字符,需要用双引号引起来,楼主可以查查双引号的作用,会让其中的元字符失效。
试了,不行,我的${v_file_name} 有可能出现多个值的情况![/quote]是有多个文件吗?文件是否需要一个一个的进行-e 判断呢?如需要,改改脚本吧。[/quote] 不需要,只是数据量比较大,分了文件,文件名中加了个序号,只判断有文件存在就行,该怎么改呢?
姜小白- 2013-12-10
  • 打赏
  • 举报
回复
引用 6 楼 lqb2008 的回复:
[quote=引用 3 楼 magi1201 的回复:] ${v_file_name} 这个参数中间应该有空格或特殊字符,需要用双引号引起来,楼主可以查查双引号的作用,会让其中的元字符失效。
试了,不行,我的${v_file_name} 有可能出现多个值的情况![/quote]是有多个文件吗?文件是否需要一个一个的进行-e 判断呢?如需要,改改脚本吧。
lqb2008 2013-12-10
  • 打赏
  • 举报
回复
引用 3 楼 magi1201 的回复:
${v_file_name} 这个参数中间应该有空格或特殊字符,需要用双引号引起来,楼主可以查查双引号的作用,会让其中的元字符失效。
试了,不行,我的${v_file_name} 有可能出现多个值的情况!
lqb2008 2013-12-10
  • 打赏
  • 举报
回复
引用 2 楼 ljc007 的回复:
if [ -e "${v_file_name}" ]; then
    echo yes
fi
试了,不行,我的${v_file_name} 有可能出现多个值的情况!
lqb2008 2013-12-10
  • 打赏
  • 举报
回复
引用 1 楼 erhou134 的回复:
sh ksh csh or anything else?
bash!!
姜小白- 2013-12-10
  • 打赏
  • 举报
回复
${v_file_name} 这个参数中间应该有空格或特殊字符,需要用双引号引起来,楼主可以查查双引号的作用,会让其中的元字符失效。
ljc007 2013-12-10
  • 打赏
  • 举报
回复
if [ -e "${v_file_name}" ]; then
    echo yes
fi
空的 2013-12-09
  • 打赏
  • 举报
回复
sh ksh csh or anything else?

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧