Linux
如何在 Bash 中使用正則表達式測試文件夾是否存在?
眾所周知,我們可以通過以下 bash 命令輕鬆檢查文件夾是否存在
[[ -d /opt/presto-server ]] && echo folder exist
但是當我們有文件夾時
/opt/presto-server-32.34
那麼如何使用正則表達式來驗證該文件夾是否存在
有了這個規則
presto-server-<any charecter>
作為
presto-server-454.545 presto-server-4a-434 presto-server-aa-434-l
ETC
我會計算萬用字元的擴展產生了多少參數。首先,我會設置
nullglob
,如果沒有匹配項,我們會得到預期的零而不是萬用字元本身。shopt -s nullglob
然後要求擴展所需的模式並將它們設置為目前參數:
set -- /opt/presto-server-*/
請注意尾部斜杠的添加——這要求結果匹配是目錄(或目錄的符號連結)。
然後問有多少:
[ "$#" -gt 0 ] && echo "There are one or more presto-server- directories"