我必须编写一个基本脚本,以以下形式接受输入:
./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
谢谢