私は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
:)に説明されています。マニュアルでは、変数と変数の割り当てについても説明します。