美好的一天!我有以下脚本应该重命名,然后将我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
除了第一行mv
之外,它的工作正常。该脚本成功重命名该文件,但以下命令似乎无法再找到"$f"
。我是bash脚本的新手。是否有办法更新"$f"
的含义,以便curl
和mv
行知道它是什么?提前谢谢!
答案 0 :(得分: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
答案 1 :(得分:3)
您可以将新名称存储在另一个变量中,然后在想要访问该文件时使用该名称。
newname="${f%.mpeg}.mpg"
然后使用"$newname"
获取变量。