我想使用脚本重命名两个文件。
例如
mv plugin-cfg.xml plugin-cfg2.xml
和
mv plugin-cfgbk.xml plugin-cfg.xml
我需要在多个目录中执行此操作。
问题:如何在每个目录中仅使用一个命令而不是两个命令来完成此操作?
答案1
bash-[41]$ touch myscript.sh
bash-[42]$ chmod +x myscript.sh
bash-[43]$ echo '#!/usr/bin/env bash' > myscript.sh
bash-[44]$ echo 'mv plugin-cfg.xml plugin-cfg2.xml' >> myscript.sh
bash-[45]$ echo 'mv plugin-cfgbk.xml plugin-cfg.xml' >> myscript.sh
bash-[46]$ ./myscript.sh
编辑清楚
以上旨在对一个简单问题进行简单回答。更长的答案。创建目录由用户决定,但您确实需要创建脚本。最简单的方法是使用touch
命令创建默认文件umask
,并使用chmod
使其可执行。
在外壳中运行:
touch myscript.sh chmod +x myscript.sh
然后编辑脚本并添加以下行:
#!/usr/bin/env bash
mv plugin-cfg.xml plugin-cfg2.xml
mv plugin-cfgbk.xml plugin-cfg.xml
创建脚本后,在 shell 中运行它:
./myscript.sh
或者
bash myscript.sh
脚本的第一行是interpreter directive
,通常称为该shebang
行。这一行告诉 shell 如何执行脚本。在本例中,这是一个简单的 shell 脚本,它运行与 shell 兼容的解释器来简单地运行命令,就像从 shell 执行命令一样。
从最简单的角度来看,这就是 shell 脚本的要点。完全按照从 shell 提示符运行的方式运行一批命令。随着脚本变得更加复杂,添加了一些附加内容,例如检查退出代码和命令输出,使用if statements
和案例根据先前测试或操作的结果对下一个操作做出动态决策。