我經常看到使用以下命令的腳本選項如if [ -f some_file ]
檢查是否some_file
為文件。我的理解很模糊旗幟,但是有人能給我一個很好的解釋嗎?其他人喜歡-p
,,-s
我不知道它們是什麼,也無法找到關於它們的好的資源,因為單一谷歌搜尋不會產生任何好的結果。
答案1
不管你信不信,[
這實際上是test
命令的另一個名稱。
您可以查看man
頁面:
man test
test
在大多數 shell 中也是內建的 shell(並且它優先於外部 shell):
% type -a \[
[ is a shell builtin
[ is /usr/bin/[
% type -a test
test is a shell builtin
test is /usr/bin/test
中bash
還可以看到help test
。
答案2
最好的解決方案是 bash 手冊,是的,簡單的man bash
.
若要查找手冊中的確切條目,請執行以下命令:
LESS=+/'^CONDITIONAL EXPRESSIONS' man bash
在 bash shell 中工作時,這也有幫助:
help test