我需要重新排列各个目录中的某些内容,但这有点麻烦。 为了调试我正在处理的应用程序(一个红宝石应用程序),我需要一次将我的宝石移动到我的gem文件夹中(长话短说;简而言之:一个坏了,我不知道哪一个)。

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

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

每次替换“ foo”。 如何编写一个简单的Shell脚本,让我做类似的事情:gemMove(“ foo”),它为我填补了空白?

===============>>#1 票数: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从备份目录移至真实目录

===============>>#2 票数: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

===============>>#3 票数: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")

  ask by Anutron translate from so

未解决问题?本站智能推荐:

1回复

Linux命令在shell命令行中表现奇怪

请看下面的命令: 我的问题是为什么$ x的输出不是: 剂量双引号改变了命令cat file | sort的行为 cat file | sort ?
1回复

Linux命令行问题提示

我开始管理基于CentOS的新服务器。 我想更改提示,所以我写了以下命令: PS1 =“\\ e [0; 36m [`pwd`] \\ $ \\ e [m” 它工作得很好。 但是因为我遇到了烦人的问题。 当我写了很长的东西,或者使用向上箭头显示一个较长的命令,或者粘贴它,然后点
1回复

目录作为命令行参数而不在Linux中使用完整路径名

您如何从当前目录中-ls另一个目录的内容而不将另一个目录的完整路径作为命令行参数列出? 我还需要按大小对目录的内容进行排序,并且仅输出大小和名称。 例如,我有以下名为script.sh shell脚本: -lS按大小列出文件,而awk仅输出大小和文件名作为输出。 $ 1是命令行参数
1回复

将命令行参数打印到新的Linux tex文件中

第一次问堆栈溢出问题。 我是一名正在使用小型Linux待办事项列表应用程序的学生,在该应用程序中,用户可以使用以下命令创建新文件: ...,结果应该是待办事项清单中的新文本文件,其中包含文本“ hello world”(或“”中的任何内容)。 到目前为止,我所拥有的:我的bash
1回复

使用命令行为现有perforce工作空间创建新映射

是否可以使用命令行为现有的perforce工作区创建新映射? 你能提供一个例子吗?
1回复

使用命令行提取txt文件子集

我是命令行NB,并且我正在尝试了解txt文件的基本知识。 这不是一件容易的事,因为我无法找到详尽的指南或手册来提供基本知识。 鉴于此,我有一个非常大的txt空格分隔文件(大约3百万行),例如: 我只想获得第一列值介于33和40之间,第二列值介于-13和28之间的行。 非常感
2回复

在管道命令行中重复使用值

有没有办法设置一个变量,然后在整个管道bash命令中重复使用它,例如
1回复

仅使用键盘浏览和复制命令行输出

有没有一种方法可以从命令行输入中跳转并浏览输出,最终将部分文本复制到剪贴板? 我发现自己经常遇到以下情况: 输出太长而看不见。 在这种情况下,我想向上滚动而不用手离开键盘 我想在新命令中使用一些文本。 在这种情况下,我想导航到这段文本并将其复制(类似于vim的可视模式
1回复

Linux命令行以递归方式删除其他文件夹中不存在的文件

我在文件夹/ 1中具有以下文件夹结构: 在此示例中,存在子文件夹1-3。 实际上,它有数百个文件夹。 每个子文件夹中都包含未知数量的png文件。 然后我有一个文件夹/ 2,该文件夹具有完全相同的子文件夹结构,但其中有更多图像,然后是文件夹/ 1: 请注意,文件夹2(.j
2回复

从Linux命令行,查找出现字符串的行数

我在/home/someuser/sometext.txt位置有一个文件。 我想计算特定字符串出现的行数。 从Linux命令行执行此操作的方法是什么?