如何创建使用变量执行大量命令的命令行 (unix/linux) 指令?

Anu*_*ron 1 bash shell command-line

我需要重新排列各个目录中的一些内容,但这有点痛苦。为了调试我正在开发的应用程序(一个 ruby​​ 应用程序),我需要将我的 gem 一次一个移动到我的 gem 文件夹中(长话短说;简而言之:一个坏了,我不知道是哪个)。

所以我需要做一些类似的事情:

sudo mv backup/gem/foo gem/
sudo mv backup/doc/foo doc/
sudo mv backup/specification/foo.gemspec specification/
Run Code Online (Sandbox Code Playgroud)

每次都替换“foo”。我怎样才能编写一个简单的 shell 脚本来让我做这样的事情: gemMove("foo") 并为我填补空白?

pjz*_*pjz 5

将以下内容放入名为 的文件中gemmove

#!/bin/bash

if [ "x$1" == x ]; then
  echo "Must have an arg"
  exit 1
fi

for d in gem doc specification ; do 
  mv "backup/$d/$1" "$d"
done
Run Code Online (Sandbox Code Playgroud)

然后做

chmod a+x gemmove
Run Code Online (Sandbox Code Playgroud)

然后调用sudo /path/to/gemmove foo将 foo gem 从备份目录移动到真实目录中