スクリプトを使用して両方のファイルの名前を変更したいと思います。
例えば
mv plugin-cfg.xml plugin-cfg2.xml
そして
mv plugin-cfgbk.xml plugin-cfg.xml
複数のディレクトリでこれを行う必要があります。
Q:各ディレクトリで2つではなく1つのコマンドのみを使用してこれを行うにはどうすればよいですか?
ベストアンサー1
bash-[41]$ touch myscript.sh
bash-[42]$ chmod +x myscript.sh
bash-[43]$ echo '#!/usr/bin/env bash' > myscript.sh
bash-[44]$ echo 'mv plugin-cfg.xml plugin-cfg2.xml' >> myscript.sh
bash-[45]$ echo 'mv plugin-cfgbk.xml plugin-cfg.xml' >> myscript.sh
bash-[46]$ ./myscript.sh
明確にするために編集
上記は簡単な質問に対する簡単な答えです。もっと長い答えです。ディレクトリの作成はユーザー次第ですが、スクリプトを作成する必要があります。最も簡単な方法は、touch
コマンドを使用して基本ファイルをumask
作成しますchmod
。
シェルで実行:
myscript.sh chmod +x myscript.shをタッチします。
次にスクリプトを編集し、次の行を追加します。
#!/usr/bin/env bash
mv plugin-cfg.xml plugin-cfg2.xml
mv plugin-cfgbk.xml plugin-cfg.xml
スクリプトを生成したら、シェルで実行します。
./myscript.sh
または
bash myscript.sh
スクリプトの最初の行はinterpreter directive
しばしばshebang
行と呼ばれます。この行はシェルにスクリプトの実行方法を伝えます。この場合、シェル互換のインタプリタを実行して、まるでシェルで実行されたかのようにコマンドを実行する単純なシェルスクリプトです。
最も簡単に言えば、これはシェルスクリプトの中核です。シェルプロンプトで実行するのと同様に、コマンドバッチを実行します。スクリプトがより複雑になるにつれて、終了コードとコマンド出力の確認、前のif statements
テスト、またはタスクの結果に基づいて、次のタスクの動的決定を行うケースと使用など、いくつかの追加機能が追加されました。