追加読書

追加読書

bashスクリプトから現在のディレクトリの一部のファイルをコピーしようとしていますが、問題は、そのcpコマンドが現在のディレクトリで機能していないことです。 Backtrack 5(Ubuntuベース)では問題なく次のコマンドを使用できますが、Kali Linux(Debianベース)では使用できません。

cp -f -v *.{html,txt,php} /var/www/

まず、ディレクトリをそのファイルがあるディレクトリに変更して、端末から直接このコマンドを実行できます。ただし、スクリプトを使用すると、次のエラーが発生します。

cp -f -v *.{html,txt,php} /var/www/
cp: cannot stat `*.{html,txt,php}': No such file or directory

Ubuntuを使用すると、スクリプトでこのコマンドを再利用することに問題はありません。

ベストアンサー1

中かっこリスト/bin/shを拡張するシステムでは、Bourne Againシェルをとして使用します/bin/sh。中かっこを通常の(メタではない)文字として扱い、ワイルドカードが一致しないと文句を言うシステムでは、Debian The Almquistシェルを使用します。/bin/sh対話型ログインシェルは両方/bin/bashのシステムでほぼ確実です。

スクリプトでPOSIXシェル言語の拡張機能を使用するには、スクリプトソルバーをサポートするシェルの実際の名前に設定する必要があります。逆に、/bin/sh他のシステムでスクリプトソルバーとして使用する場合は、POSIX準拠のシェル構文に厳密に従う必要があります。

追加読書

おすすめ記事