这个标题有点混乱,所以让我分解一下。基本上,我有一个完整的文件目录,其中包含各种名称和扩展名:
MainDirectory/
image_1.png
foobar.jpeg
myFile.txt
对于 iPad 应用程序,我需要创建这些文件的副本,并在所有这些文件名的末尾附加后缀@2X,在扩展名之前 - 所以我最终会得到这个:
MainDirectory/
image_1.png
image_1@2X.png
foobar.jpeg
foobar@2X.jpeg
myFile.txt
myFile@2X.txt
我不想手动更改文件名,而是想创建一个脚本来为我处理它。我目前有以下内容,但它没有按预期工作:
#!/bin/bash
FILE_DIR=.
#if there is an argument, use that as the files directory. Otherwise, use .
if [ $# -eq 1 ]
then
$FILE_DIR=$1
fi
for f in $FILE_DIR/*
do
echo "Processing $f"
filename=$(basename "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"
newFileName=$(echo -n $filename; echo -n -@2X; echo -n $extension)
echo Creating $newFileName
cp $f newFileName
done
exit 0
我还想将其保留为纯 bash,而不是依赖于特定于操作系统的调用。我究竟做错了什么?为了做我需要的事情,我可以改变什么或什么代码可以工作?