在bash脚本中重命名文件会破坏脚本

mrc*_*son 0 bash

美好的一天!我有以下脚本应该重命名,然后将我Mac上的文件夹中的文件发送到FTP服务器.

for f in "$@"
    do
        mv "$f" "${f%.mpeg}.mpg"
        curl -T "$f" ftp://1.2.3.4/Vol123456-01/MPEG/ --user me:secret
        mv "$f" "/Users/me/Sent Stuff"
    done
Run Code Online (Sandbox Code Playgroud)

除了第一mv行之外,它工作正常.该脚本成功重命名该文件,但以下命令似乎无法再找到"$f".我是bash脚本的新手.有没有办法更新或许是什么"$f"意思,以便curlmv线知道它是什么?提前致谢!

Mad*_*ist 5

你已经准确地解决了这个问题.第一个mv重命名文件.原始名称"$f"不再存在.试试这个:

for f in "$@"
do
    g="${f%.mpeg}.mpg"
    mv "$f" "$g"
    curl -T "$g" ftp://1.2.3.4/Vol123456-01/MPEG/ --user me:secret
    mv "$g" "/Users/me/Sent Stuff"
done
Run Code Online (Sandbox Code Playgroud)