我在網上找到了這個簡單的檔案名列印。但我找不到解釋,這些##*/是什么意思?它看起來不像是regex。更重要的是,它可以和readlink的結果在一行中使用嗎?
uj5u.com熱心網友回復:
${string##substring}從
$string的前面洗掉最長匹配的substring。
所以在你的例子中,
substring中的*表示:匹配所有的東西。
命令echo ${full_path##/*}將:
列印$full_path 除非它以正斜杠(/)開頭,在這種情況下,將顯示一個空字串
示例案例;
$ test_1='/foo/bar'
$ test_2='foo/bar'。
$
$ echo "${test_1##/*}"
$ echo "${test_2##/*}"
foo/bar
$
關于你的第二個問題:
。此外,它是否可以與readlink的結果在一行中使用?
如果你使用的是bash,我建議保持簡單,將readlink的結果分配給一個變數,然后使用常規變數替換來獲得所需的輸出。可以使用&&語法來鏈接這兩個動作。
一個單行代碼可以是這樣的:
一個單行代碼可以是這樣的:
tmp="$(readlink -f file_a)" & & echo "${tmp##/*}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/308015.html
標籤:
上一篇:<p>晚上好,親愛的Stackoverflow社區。 這是我在這里的第一個問題。 <p>我有以下問題。我需要一個查詢來計算每個國家的滾動日期范圍(3天)內的不同值。 <p
