shell指令碼中棧(stack)簡單封裝
阿新 • • 發佈:2018-12-15
操作命令
init_stack name # 初始化
push_stack name data # 進棧操作
pop_stack name # 出棧操作
print_stack name # 輸出棧中內容
實際程式碼
function init_stack() {
eval "$1"_length=0
}
function push_stack() {
eval eval "$1"_"\${${1}_length}"="$2"
eval eval "$1"_length="\$(( "$1"_length + 1 ))"
}
function pop_stack() {
eval "$1"_length="\$(( "$1"_length - 1 ))"
eval eval echo \\\$"$1""_\${${1}_length}"
}
function print_stack() {
echo -n "["
eval length="\${${1}_length}"
i=0
while test $i -lt $length
do
test $i != 0 && echo -n ", "
eval echo -n "\$${1}_${i}"
i=$(( i + 1 ))
done
echo "]"
}