2017-04-04 55 views
0

我想設置一個變量到路徑中的最後一個東西,但似乎無法弄清楚如何去做。現在,我有這個,但它不工作:Bash設置一個變量來削減其他變量

path=echo pwd 
last=echo $path | rev | cut -d/-f 1 | rev 

因此,例如,如果路徑是〜/一/二/三,我想最後被設置爲三個。 現在,每當我運行echo $last時,所有輸出的都是空行。

任何人都可以幫忙嗎?謝謝!

回答

0

你也可以實現同樣的事情用簡單的awk命令,也像下面

last=`echo $PWD | awk -F "/" '{print $NF}'` 
echo $last 

或使用SED剝除/第一然後打印最後一個目錄名稱

last=`echo $PWD | sed 's/\// /g' | awk '{print $NF}'` 
echo $last 
1

變量PWD已經填滿,所以你c一個做

last=${PWD##*/} 
echo "${last}" 
+0

這個語法對我來說是新的,所以我查了一下。大括號(「{}」)表示外殼擴展。 '##'會影響擴展的發生。 ##'擴展爲模式後,如果擴展變量的開始匹配,它將被刪除。雙'##'表示刪除最長的匹配部分;一個'#'刪除最短的部分。在這種情況下,它匹配'* /',因此所有內容都包含最後一個斜槓,只留下當前目錄名稱。 [這裏有更多信息。](http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion)謝謝! –