1

さまざまなディレクトリの一部のコンテンツを再配置する必要がありますが、少し面倒です。私が取り組んでいるアプリケーション (Ruby アプリ) をデバッグするには、gem を一度に 1 つずつ gem フォルダーに移動する必要があります (長い話; 一言: 1 つが壊れていて、どれがどれかわかりません)。

だから私は次のようなことをする必要があります:

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

毎回「foo」を置き換えます。gemMove("foo") のような単純なシェル スクリプトを作成して、空白を埋めるにはどうすればよいでしょうか。

4

3 に答える 3

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

それからする

chmod a+x gemmove

sudo /path/to/gemmove foo次に、foo gem をバックアップ ディレクトリから実際のディレクトリに移動するように呼び出します。

于 2008-09-16T17:39:38.867 に答える
1

次のように、単純に bash シェル引数を使用できます。

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

次に、次のように実行します。

sudo ./move.sh foo

必ずスクリプトを実行可能にしてください。

chmod +x move.sh
于 2008-09-16T17:41:02.887 に答える
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")その後、スクリプトの他の場所で呼び出すことができます。

于 2008-09-16T17:47:13.560 に答える