我想创建一个文件名,用于将输出重定向到.
例如:
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"
大括号防止_
被视为前一个参数名称的一部分(或者更准确地说,它们将封闭的字符串分隔为参数名称(。