String Bash字符串串联请求数值参数

String Bash字符串串联请求数值参数,string,bash,function,String,Bash,Function,我需要一个bash函数,它用一个字符串作为日期和时间字符串的前缀 show_neb_2017_05_20_16_55 我希望我当前的函数能够做到这一点,只是它需要一个数值参数 function show_neb() { a='show_neb_'$(date +"%Y_%m_%d__%H_%M") return $a } echo $(show_neb) 我本以为它会起作用,但事实并非如此。这不只是字符串的直接标准输出吗?返回值

我需要一个bash函数,它用一个字符串作为日期和时间字符串的前缀

show_neb_2017_05_20_16_55

我希望我当前的函数能够做到这一点,只是它需要一个数值参数

    function show_neb() {
        a='show_neb_'$(date +"%Y_%m_%d__%H_%M")
        return $a
        }

    echo $(show_neb)

我本以为它会起作用,但事实并非如此。这不只是字符串的直接标准输出吗?

返回值只能用于为函数提供整数退出代码,而不是任意字符串值。要模拟返回值,需要写入标准输出,然后通过命令替换捕获该值

show_neb () {
    date +"show_neb_%Y_%m_%d__%H_%M"
    # Replacing echo "show_neb_$(date +"%Y_%m_%d__%H_%M")"
}

val=$(show_neb)

Shell函数实际上不是通常意义上的函数;它们更像是源代码中的内存shell脚本。

返回
只能用于为函数提供整数退出代码,而不是任意字符串值。要模拟返回值,需要写入标准输出,然后通过命令替换捕获该值

show_neb () {
    date +"show_neb_%Y_%m_%d__%H_%M"
    # Replacing echo "show_neb_$(date +"%Y_%m_%d__%H_%M")"
}

val=$(show_neb)

Shell函数实际上不是通常意义上的函数;它们更像是源代码中的内存shell脚本。

只要运行该函数,就可以实现它们想要的功能。是的;我要强调的是,如果要将“返回值”分配给变量,您需要什么。充分利用函数中的
date
输出,而不是显式的
echo
printf
:)
(当然,在这种情况下,您可以完全取消
show_neb
函数,只需在
date
命令本身上使用命令替换)只需运行该函数就可以了。是的;我强调的是,如果要分配“返回值”,您需要什么一个变量。充分利用函数中的
date
输出,而不是显式的
echo
printf
:)
(当然,在这种情况下,您可以完全取消
show_neb
函数,只需对
date
命令本身使用命令替换即可)您缺少的是
return
仅返回成功/失败,而不是字符串。要执行您尝试的操作,请尝试
echo“$a”;返回0
您缺少的点是
return
仅返回成功/失败,而不是字符串。要执行您尝试的操作,请尝试
echo“$a”;返回0