我需要一个bash函数,它在date_time字符串前加一个字符串。
show_neb_2017_05_20_16_55
我希望我当前的功能可以做到这一点,除了它需要一个数字参数。
function show_neb() {
a='show_neb_'$(date +"%Y_%m_%d__%H_%M")
return $a
}
echo $(show_neb)
我原本预计它会起作用,但事实并非如此。这不仅仅是字符串的直接标准输出吗?
答案 0 :(得分:2)
return
只能用于为函数提供整数退出代码,而不是任意字符串值。要模拟返回值,您需要写入标准输出,然后通过命令替换来捕获它。
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脚本。