0

我必须编写一个基本脚本,以以下形式接受输入:

./chext 'param1' 'param2.xx'

和输出:

参数2.param1

具体来说,我必须检查文件是否存在,如果存在,则使用新扩展名重命名它,如果不存在,则生成消息:

param2.xx:没有这样的文件

具体来说,有人告诉我:“不应发出其他消息,包括来自脚本调用的命令的错误消息。”

这适用于以下示例:

./chext 'com' '土豚.dat'

./chext 'ret' '太常见了.exp'

但对于:

./chext 'dat' 'ocelot.dat'

我收到错误(由我的教授创建)“生成了意外消息”

谁能告诉我这个例子有什么不同以至于我的脚本没有处理?

#!/bin/csh                                                                      
set ext="$1"
set oldName="$2"
if (-r "$oldName") then
set newName=`echo "$oldName" | sed 's/\.[A-Za-z0-9]*$/'".$ext"'/g'`
mv "$oldName" "$newName"
else
echo "$oldName": No such file
endif

谢谢

4

1 回答 1

0

您不能将文件重命名为它已有的名称。

于 2012-04-20T05:57:14.290 回答