可以使用函数来实现递归地打印变量的值。以下是一个示例脚本:
#!/bin/bash
var="Hello, world!"
function print_var {
echo $1
if [ -n "$2" ]; then
print_var "${!2}"
fi
}
print_var $var var
这个脚本将变量 $var
作为第一个参数传递给 print_var
函数,并将其名称 "var"
作为第二个参数传递。函数使用 echo
语句打印变量的值,然后检查传递给函数的第二个参数是否为空。如果不为空,则递归地调用 print_var
函数并将变量的名称作为第二个参数传递,直到变量值为空为止。在此示例中,输出将显示:
Hello, world!
请注意,如果变量是数组,则需要使用 printf
命令来打印所有数组元素。例如:
#!/bin/bash
my_array=(apple banana orange)
var="Hello, world!"
function print_var {
echo $1
if [ -n "$2" ]; then
if [[ "$(declare -p $2)" =~ "declare -a" ]]; then
printf "%s\n" "${!2[@]}"
else
print_var "${!2}"
fi
fi
}
print_var $var var
print_var "my_array" my_array
该脚本输出:
Hello, world!
apple
banana
orange