我想在执行脚本的其余部分之前为我的Bash脚本编写一个帮助函数,以打印出所设置的变量及其默认值。
我不需要功能就可以做我想做的事
transaction_bottom.replace(R.id.bottomFragment,infoFragment);
transaction_bottom.commit();
输出为:
host="postgres.database.com"
port="5432"
username="dbadmin"
dbname="test"
# Code below needs to be a function
for argument in host port username dbname
do
echo "$argument: ${!argument}"
done
但是,我想在其他脚本中重用此代码,如下所示:
host: postgres.database.com
port: 5432
username: dbadmin
dbname: test
我已经搜索了各种打印变量名的方法,但没有找到它的值,但是似乎没有一种对我有用。如您在下面看到的,我尝试使用shell参数扩展和变量间接寻址:
print_arguments $host $port $username $dbname
结果通常如下:
print_arguments() {
for argument in "$@"
do
echo "${!argument*}" "$argument"
echo "${argument@A}" "$argument"
done
}
argument postgres.database.com
argument 5432
argument dbadmin
argument test
是argument
循环中使用的变量名。我想使其能够解析为原始变量名称,例如for
或host
。
答案 0 :(得分:3)
将变量名称而不是其值传递给print_arguments
。
print_arguments host port username dbname
然后循环播放您的上层作品。
print_arguments() {
for argument in "$@"
do
echo "$argument: ${!argument}"
done
}