分页: 1 / 1
脚本中使用cp命令出错
发表于 : 2012-08-06 17:45
由 iwasdead
有一个问题已经困扰我很长时间了,请大家帮忙解决一下。
系统:Ubuntu 10.04 LTS 64位。
使用gnome-schedule 运行一个 gnome-terminal, 然后在这个terminal中执行一个脚本。
但是问题来了,
这个脚本中的命令:
cp aaa.txt bbb.txt -f 执行失败
显示:
cp: 目标 "-f" 不是目录。
而正常的shell中执行是成功的。
后来发现,只要是通过gnome-schedule 运行起来的shell,在其中执行 cp命令的话,如果把 option放在最后都会存在这个问题。
谁能帮帮我,要疯掉了。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 17:47
由 枫叶饭团
原因就是运行它的shell是不同的
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 17:57
由 iwasdead
都是bash啊。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 17:59
由 cao627
原因就是运行它的shell是不同的
无论是在哪个终端中运行脚本,真正执行脚本的是脚本文件第一行 #!后指定shell吧?怎么会是“运行它的shell是不同的”?
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 18:10
由 iwasdead
现在是在 gnome-scedule中只执行 gnome-terminal.
然后在里面手动执行 cp aaa.txt bbb.txt -f,都会报这个错误,直接崩溃了。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 18:11
由 枫叶饭团
那还能怎么说呢,那就是-f 被当成一个整体了字符串了吧。
另外ls,谁说一定要听第一行的。。。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 18:20
由 cao627
要么楼主的脚本没写#!
要么gnome-scedule中只执行 的gnome-terminal 是无视脚本的第一行 #! 的
Re: 脚本中使用cp命令出错
发表于 : 2012-08-06 19:18
由 lilydjwg
这样呢?
代码: 全选
cp -f aaa.txt bbb.txt
Re: 脚本中使用cp命令出错
发表于 : 2012-08-07 9:10
由 iwasdead
cp -f aaa.txt bbb.txt
是正常的。
但是把选项放在最后就不行,真TM奇怪了。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-07 10:16
由 lilydjwg
iwasdead 写了:cp -f aaa.txt bbb.txt
是正常的。
但是把选项放在最后就不行,真TM奇怪了。
是不是两种情况调用的不同的 cp?试试
BSD 的命令都是不支持把选项放到参数后的。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-07 15:45
由 iwasdead
找到原因了。
出错的shell中有一个环境变量被设置上了
POSIXLY_CORRECT=true
调用
unset POSIXLY_CORRECT
就可以了,唉。
谢谢大家的帮助。
Re: 脚本中使用cp命令出错
发表于 : 2012-08-07 16:19
由 lilydjwg
iwasdead 写了:找到原因了。
出错的shell中有一个环境变量被设置上了
POSIXLY_CORRECT=true
调用
unset POSIXLY_CORRECT
就可以了,唉。
谢谢大家的帮助。
原来如此,大长见识啦
