BASH创建文件名形式变量



我想创建一个文件名,用于将输出重定向到.

例如:

ls -lash > $filename

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

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

没有一个起作用。。如何获得名为的文件

站点1_location_northeast_071218142325.txt

感谢

您只需要:

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

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

只需使用字符串插值。

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

大括号防止_被视为前一个参数名称的一部分(或者更准确地说,它们将封闭的字符串分隔为参数名称(。

最新更新