1. 程式人生 > >shell指令碼中棧(stack)簡單封裝

shell指令碼中棧(stack)簡單封裝

操作命令

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 "]" }