【发布时间】:2021-02-11 14:05:31
【问题描述】:
我对 Bash 脚本非常陌生,并且正在做一项家庭作业,我需要重命名多个文件,这些文件的路径存储在 python 列表中。 old_names 和 new_names 列表分别包括旧文件路径和新文件路径。我知道在 Bash 中有多种方法可以做到这一点,但我需要使用“mv”命令来完成这个特定的任务。另外,最终我需要将函数传递给 python 子进程模块来重命名文件。
old_names = ['/data/jane_profile_07272018.doc','/data/jane_pic_07282018.jpg','/data/jane_contact_07292018.csv']
new_names = ['/data/jdoe_profile_07272018.doc','/data/jdoe_pic_07282018.jpg','/data/jdoe_contact_07292018.csv']
下面是我的代码:
for file in "$old_names";
do mv "$file" "$new_names";
done
我不断收到语法错误,如果有人能指出我做错了什么,我将不胜感激。
【问题讨论】:
-
Cat 用于打印文件的内容,而不是变量。
-
如果我删除 cat 仍然会出现语法错误
-
将路径放入数组中,然后在数组上循环。
-
您初始化数组的语法是错误的。在
bash中,数组被初始化为arrayname=(word1 word2 word3 ...)