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

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

sudo mv backup/gem/foo gem/
sudo mv backup/doc/foo doc/
sudo mv backup/specification/foo.gemspec specification/

每次替换“foo”。我如何编写一个简单的 shell 脚本来让我执行以下操作:gemMove("foo") 它为我填补了空白?

有帮助吗?

解决方案

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

#!/bin/bash

foo=$1

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

for d in gem doc specification ; do 
  mv backup/$d/$1 $d
done

然后做

chmod a+x gemmove

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

其他提示

您可以简单地使用 bash shell 参数,如下所示:

#!/bin/bash
# This is move.sh
mv backup/gem/$1 gem/
mv backup/doc/$1 doc/
# ...

然后执行它:

sudo ./move.sh foo

确保使脚本可执行

chmod +x move.sh

在 bash 中,类似:

function gemMove()
{
filename=$1
   mv backup/gem/$filename gem/$filename
   mv backup/doc/$filename doc/$filename
   mv backup/specification/$filename.spec specification
}

然后你就可以打电话 gemMove("foo") 脚本中的其他地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top