cp:無効なオプション - 'h'

cp:無効なオプション - 'h'

Ubuntuを使用していてインストールしようとしています。これAnaconda経由のPythonパッケージ。私はリンクの手順に従いcp -Ri $THIS_DIR/PackageFiles/Scripts $CMDIR(59行目から)入力すると、次のような結果が得られます。

cp: invalid option -- 'h'

なぜですか?この問題をどのように修正できますか?

echo $THIS_DIR編集:との出力はそれぞれecho $CMDIRです。dirname -bash/home/myusername/cellmodeller

ベストアンサー1

いくつかの点:THIS_DIR含まれているdirname -bash場合(単語分割のため)、同等に拡張cp -Ri $THIS_DIR/...されます。つまり、および他の引数としてインポートされます。 2番目はダッシュで始まるので、その中の文字をオプションとして解釈しようとします。 GNU cpはオプションとして使用できないため、エラーが発生します。cp -Ri dirname -bash/...cpdirname-bash/...-h

dirname -bash引用符で区切ることはできませんが、スペースとすべてのエントリを含むディレクトリがないため、これは意味がありません。

THIS_DIRで設定されたスクリプトを表示します。

THIS_DIR="`dirname $0`"

バックティックに注目してください。バックティックはコマンド置換を開始し、dirnameコマンドを実行します。削除すると、dirname ...リテラル文字列が割り当てられます。

繰り返しますが、$0実行中のシェルまたはスクリプトの名前です。スクリプトはこのコマンドを使用して、/foo/barランタイムパスなど、スクリプト自体が存在する場所を見つけることができます/foo/bar/scriptname.sh。ただし、通常実行される対話型シェルまたはログインシェルの場合$0にのみ含めることができます。bash-bash

cutrightjmがコメントしたように、これは端末にコピーされた別のコマンドではなくスクリプトとして実行されるように設計されています。 (拡張子の周りに引用符を使用できます。)

THIS_DIRもちろん、スクリプト内で割り当てを変更または実行する前に変更することもできます。

おすすめ記事