BASH创建文件名表单变量

时间:2018-12-07 14:24:21

标签: bash

我想创建一个文件名以将输出重定向到。

例如:

ls -lash > $filename

所有变量都已设置。 到目前为止,我已经尝试了以下方法:

filename=`echo $site . "_location_" . $address . "_" .  $timestamp . ".txt"` 

filename=$site . "_location_" . $address . "_" .  $timestamp . ".txt" 

filename="$site_location_$address_$timestamp.txt" 

没有一个工作。.我如何获得一个像这样的文件:

site1_location_northeast_071218142325.txt

谢谢

2 个答案:

答案 0 :(得分:2)

只需使用字符串插值即可。

filename="${site}_location_${address}_${timestamp}.txt"

大括号可防止将_视为前面的参数名称的一部分(或更精确地说,它们将包围的字符串定为参数名称)。

答案 1 :(得分:2)

您需要的是:

filename="${site}_location_${address}_${timestamp}.txt" 

变量名周围的花括号可帮助Bash知道您要替换变量$site$address的值。否则,因为_是变量名中的有效字符,它认为您要使用变量$site_location_$address_(不存在)。