ファイルを移動するBashスクリプト


11

私は初心者で、助けが必要です。

別のディレクトリのあるディレクトリからいくつかのファイルを移動するスクリプトを作成しようとしています。スクリプトを作成する前に、コマンドをテストしましたが、機能していました。

mv /path/to/source  /path/to/destination

スクリプトを作成した後nano

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

スクリプトを実行可能にした後:chmod +x file として実行しました./fileが、次のエラーが表示されます。

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

私は試してみてsudo ./file、bashファイルを使用しましたが、うまくいきません。

VirtualBoxと共にインストールされたUbuntuを使用しています。


回答:


20

それ#!bin/bash/はあなたが使用したためであり、これは間違っています。正しい方法は次のとおりです。

#!/bin/bash

これはシェバンと呼ばれ、実行時にスクリプトを解釈するプログラムをシェルに伝えます。

もう1つ:Ubuntuでのbashインタープリターの絶対パスは/bin/bash、ではなく、bin/bash/または何かです。これはwhich bashコマンドを使用して確認できます。

そして別のことですが、おそらくあなたはこれを知っています:次の行:

echo "mv /path/to/source /path/to/destination"

でテキストメッセージのみを表示しますmv /path/to/source /path/to/destination。ファイルを実際に移動するには、次のスクリプトを使用します。

#!/bin/bash
mv /path/to/source /path/to/destination

スクリプトは次のようになります。


1
fyi、Ubuntuは歴史的に信じられないほど便利なwhichコマンドのくだらないバージョンをパッケージ化しています。gnu whichを取得するには、手動でインストールする価値があります。
djeikyb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.