我需要在各种目录中重新排列一些内容,但这有点痛苦。为了调试我正在处理的应用程序(一个红宝石应用程序),我需要一次一个地将我的宝石移动到我的宝石文件夹中(长篇故事;简言之:一个被打破,我无法弄清楚哪一个)。
所以我需要做一些事情:
sudo mv backup/gem/foo gem/
sudo mv backup/doc/foo doc/
sudo mv backup/specification/foo.gemspec specification/
每次都替换“foo”。我怎样才能创建一个简单的shell脚本来让我做类似的事情:gemMove(“foo”)并为我填写空白?
答案 0 :(得分:4)
将以下内容放入名为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从备用dirs移动到真实的
答案 1 :(得分:1)
您可以简单地使用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
答案 2 :(得分:1)
在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")
。