我試圖創建一個腳本,它自動查找插入設備並對其進行壓縮備份。不過,我無法找到如何使用expr
正確的方法:expr:正則表達式沒有檢測到有效表達式
#!/bin/bash
MountText=`mount`
# Show result of regex search
expr "$MountText" : '\/dev\/(sd[^a])\d on [\S]+\/[\s\S]+? type'
表達本身是\/dev\/(sd[^a])\d on [\S]+\/[\s\S]+? type
,並捕獲設備名稱(SD *),同時排除坐騎與SDA。
我起草了Regexr(正則表達式在鏈接中共享),and used what mount
dumped (gist)的正則表達式。
出於某種原因,它只是給出了這個奇怪的錯誤:
0
我環顧四周,我found this SO question。它對我沒有太大的幫助,因爲現在這意味着expr
不能識別我用來捕捉設備的括號,並且它也相信這個表達式不會捕獲任何東西!
我真的很困惑。我究竟做錯了什麼?
正則表達式只有語言中工作,外殼使用通配符或水珠,請谷歌這些條款爲您正在使用的外殼,** echo $ SHELL ** –
謝謝,沒有聽到任何'expr'使用globs的信息。雖然,我不明白你的意思** echo $ SHELL **,因爲我在標籤和hashbang中都提到了我使用的是bash。 –
@ArifBurhan另外,我檢查了'man'頁面,它說'expr STRING:REGEXP'使用正則表達式。 –