0

私はbashスクリプトを初めて使用し、現在それを使用してバックアップファイルを作成しようとしています. 私が直面しているのはスクリプトの下です (bash ファイルの 47 行目)、

$(tar -czvPf ${folder_backup}/rajal/backup.tgz -C /var/www/tmk/app .)

シェルでは常にエラーを出しますが、./test: line 47: ./: Is a directoryターミナルではうまく動作します。

参考までに、フォルダーアプリはファイルとサブフォルダーを含むフォルダーです。

誰か助けてくれませんか?助けてくれてありがとう。

4

2 に答える 2

1
$(command)

意味: 実行commandし、その出力を返します。説明のために、次のように非常によく使用されます。

result=$(foo 4 123)

これが評価された後result、コマンドfoo 4 123出力が何であれ保持されます。

別のコマンドの引数として、または変数の代入としてではなく、その構造を直接使用すると、シェルはcommand の出力を実行しようとします。これが必要な場合もありますが、多くの場合、そうではありません。

したがって$( )、コマンドから を削除してtar直接実行してください。の出力をキャプチャする場合はtar、ファイルにリダイレクトするか、上記の構成を使用します。


$(command)${env_var_name}は完全に異なることに注意してください。構文が重要です。

于 2012-12-12T11:01:01.350 に答える
0

@MatWhy do you have $( ) around the tar?のように、それを削除したところ、現在は機能しています:D

于 2012-12-12T10:57:37.967 に答える