これはどういう意味ですか? if[! -e "$exe"];

これはどういう意味ですか? if[! -e "$exe"];

私はLinuxでスクリプトを見ました。これが何を意味するのか知りたいです。

if [ ! -e "$exe" ]; then
  exe='/path to some file'
fi

答え1

info test詳細を表示するには実行してください。

16.3.3 File characteristic tests
--------------------------------

These options test other file characteristics.

‘-e FILE’
     True if FILE exists.

‘-s FILE’
     True if FILE exists and has a size greater than zero.

‘FILE1 -nt FILE2’
     True if FILE1 is newer (according to modification date) than FILE2,
     or if FILE1 exists and FILE2 does not.

‘FILE1 -ot FILE2’
     True if FILE1 is older (according to modification date) than FILE2,
     or if FILE2 exists and FILE1 does not.

‘FILE1 -ef FILE2’
     True if FILE1 and FILE2 have the same device and inode numbers,
     i.e., if they are hard links to each other.

答え2

これは、「変数の値がexeファイルシステムの既存の名前と一致しない場合は、その値を」/path to some fileに設定することを意味します。

この[ -e something ]テストは、名前がsomething通常のファイル、ディレクトリ、または他の種類のファイル名で存在するかどうかをテストします。

!テストの重要性を否定します。

このifステートメントは与えられたコマンド(この場合はコマンド[ ! -e "$exe" ])を評価し、コマンドが成功すると(この場合ファイルは実行されます)いいえ存在する場合)ステートメントの本文にあるステートメントを実行しますif(この場合は変数への割り当てexe)。

[testユーティリティマニュアル(man [またはman test

このifステートメントは、シェルのマニュアル(例man bash:)に説明されています。マニュアルでは、変数と変数の割り当てについても説明します。

関連情報