创建了简单的bash脚本,如下所示
#!/bin/bash
declare -a message_list=("ok" "error" "cancel")
display_output_message()
{
message_index=$1
message_type=$2
if [ $message_index -gt 2 ]
then
printf "Invalid Message index\n"
exit 0
fi
if [ $message_type -eq 1 ]
then
printf "%s\n" $message_index
else
printf "%s\n" "${message_list[$message_index]}"
fi
}
printf "message :: %s %s\n" "display_output_message $1 $2" "received"
从上面的脚本我想从display_output_message()
调用printf
函数,并在它调用的printf
语句中打印该函数的输出。我不知道如何将函数输出重定向到printf
。到目前为止我所尝试的内容显示在脚本上方,当我运行脚本时,然后显示输出如下
$ ./script.bash 1 2
message :: display_output_message 1 2 received
所以printf
只打印我要调用的函数名称和参数列表,但我想输出如下
$ ./script.bash 1 2
message :: ok received
我遗漏了一些未成年人,或者可能不知道如何将输出重定向到printf
。
有任何想法我该如何解决它。?
答案 0 :(得分:3)
您需要实际调用该功能。现在你只是传递了一段文字。
试试这个:
printf "message :: %s %s\n" "$(display_output_message $1 $2)" "received"