0
我有一个问题,我得到的作业似乎适用于我自己的测试。我将在下面发布脚本和错误。 bash脚本将文件移动到同一目录中具有旧扩展名的文件
#!/bin/bash
for file in $1
do $file | grep \.old$ > /dev/null
if [ "$file" != 0 ]
then mv $file $file.old
else $file
fi
done
Files created in 'testdir:
file1 file2.old file3old file4.old
Execution of 'oldfiles testdir':
'oldfiles testdir' incorrectly produced some output or errors:
for file in $1
do $file | grep \.old$ > /dev/null
if [ "$file" != 0 ]
then mv $file $file.old
else $file
fi
done
+ for file in '$1'
+ grep '.old$'
+ /var/tmp/uli101.npkrause.assign4.8938.testdir
/home/npkrause/scripts/oldfiles: line 4: /var/tmp/uli101.npkrause.assign4.8938.testdir: Is a directory
+ '[' /var/tmp/uli101.npkrause.assign4.8938.testdir '!=' 0 ']'
+ mv /var/tmp/uli101.npkrause.assign4.8938.testdir /var/tmp/uli101.npkrause.assign4.8938.testdir.old
Files in 'testdir' after 'oldfiles' was run:
ls: cannot access /var/tmp/uli101.npkrause.assign4.8938.testdir: No such file or directory
Filenames don't seem to be correct
Please hit <Enter> to continue with the Assignment
脚本应该做什么?你还没有告诉我们足够的工作来解决“似乎行得通”的意思或你尝试过的测试。 – 2014-10-29 21:43:52
你不能执行一个文件或目录,它是'$ file | grep ...正在尝试去做。您希望将该文件作为参数提供给grep。 'grep'\ .old $'“$ file”'。 – 2014-10-29 21:48:26
您应该通过[shellcheck.net](http://shellcheck.net)运行您的脚本并修复它报告的警告,然后尝试弄清楚您的脚本实际上应该做什么,因为现在不在全部清楚(或者必然更理智)。 – 2014-10-29 21:49:39