2011-07-25 101 views
1

this問題命令在命令行工作,但不能一概而論的功能

@SiegeX給出了 重複條目清潔的bash PATH變量的一個很好的方式:

PATH=$(awk 'BEGIN{ORS=":";RS="[:\n]"}!a[$0]++' <<<"${PATH%:}") 

當我輸入這個效果很好它在命令行中。 我試着在bash功能,以此來可以將其應用到其他變量:

function dupremove() 
{ 
    ${1}=$(awk 'BEGIN{ORS=":";RS="[:\n]"}!a[$0]++' <<<"${1%:}") 
} 

,但是當我執行它,它給人的錯誤:

> dupremove PATH 
bash: PATH=PATH:: command not found 

對我的任何想法可以寫功能?

+0

嘗試'dupremove「PATH'' –

+0

@Rafe_Kettler它不同意你的建議的工作。 – skeept

回答

1

這對我的作品(TM)

function dupremove 
{ 
    eval path=\$$1 
    export $1=$(awk 'BEGIN{ORS=":";RS="[:\n]"}!a[$0]++' <<< $path) 
} 
相關問題