首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建使用变量执行大量命令的命令行(unix/linux)指令?

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

Stack Overflow用户
提问于 2008-09-16 17:37:02
回答 3查看 647关注 0票数 1

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

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

代码语言:javascript
复制
sudo mv backup/gem/foo gem/
sudo mv backup/doc/foo doc/
sudo mv backup/specification/foo.gemspec specification/

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-16 17:39:39

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

代码语言:javascript
复制
#!/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

那就这么做

代码语言:javascript
复制
chmod a+x gemmove

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

票数 5
EN

Stack Overflow用户

发布于 2008-09-16 17:41:03

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

代码语言:javascript
复制
#!/bin/bash
# This is move.sh
mv backup/gem/$1 gem/
mv backup/doc/$1 doc/
# ...

然后按如下方式执行:

代码语言:javascript
复制
sudo ./move.sh foo

确保脚本是可执行的,并使用

代码语言:javascript
复制
chmod +x move.sh
票数 1
EN

Stack Overflow用户

发布于 2008-09-16 17:47:14

在bash中,类似于:

代码语言:javascript
复制
function gemMove()
{
filename=$1
   mv backup/gem/$filename gem/$filename
   mv backup/doc/$filename doc/$filename
   mv backup/specification/$filename.spec specification
}

然后,您可以在脚本中的其他位置调用gemMove("foo")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档