有关如何读取目录中文件的基本问题

teaLive

这是一个初学者的问题:我正在尝试编写.sh文件来自动重命名目录中的文件。

该文件看起来像

for fileName in directory
do
    mv fileName "NewPrefix"+fileName
done

我正在尝试弄清楚如何编写该for fileName in directory部分。

我尝试了以下方法:

dir = '.'
for fileName in dir

这是可行的,但是每当我运行此脚本时,我都会 dir: cannot access =: No such file or directory.

为什么?

剩下

您的代码有几个问题:

  • Bash变量与一起使用$VAR,请注意$前面的内容。如果省略美元符号,则将其视为常规字符串。
  • 击文件匹配需要一个通配符(*?等)。您的示例.将与文件夹匹配,该文件夹.是当前文件夹。
  • 变量设置为VAR=VALUE等号周围没有空格。VALUE如果有空格,必须用引号引起来。
  • 字符串串联会自动发生。+符号+在该位置插入文字
  • 除非有理由,否则应始终在双引号周围使用变量。

考虑到这些要点,这是脚本的有效版本。

cd /path/to/folder

for file in ./*
do
    mv "$file" "NewPrefix$file"
done

如果条件

如果像这样使用条件:

if [[ "$file" == "New"* ]]
then
    # Do something here
fi

请注意,星号在双引号之外

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章