BASH创建文件名表单变量
我想创建一个文件名,用于将输出重定向到 例如: 所有变量都已设置。。 到目前为止,我已经尝试了以下方法:BASH创建文件名表单变量,bash,Bash,我想创建一个文件名,用于将输出重定向到 例如: 所有变量都已设置。。 到目前为止,我已经尝试了以下方法: filename=`echo $site . "_location_" . $address . "_" . $timestamp . ".txt"` filename=$site . "_location_" . $address . "_" . $timestamp . ".txt" filename="$site_location_$address_$timestamp.t
filename=`echo $site . "_location_" . $address . "_" . $timestamp . ".txt"`
filename=$site . "_location_" . $address . "_" . $timestamp . ".txt"
filename="$site_location_$address_$timestamp.txt"
没有一个奏效。。如何获取名为以下内容的文件:
site1\u location\u northeast\u 071218142325.txt
谢谢只需使用字符串插值
filename="${site}_location_${address}_${timestamp}.txt"
大括号防止将
\u
视为前面参数名的一部分(或者更准确地说,它们将包含的字符串分隔为参数名)。只需使用字符串插值即可
filename="${site}_location_${address}_${timestamp}.txt"
大括号防止将\uu
视为前面参数名的一部分(或者更准确地说,它们将封闭字符串分隔为参数名)。您只需要:
filename="${site}_location_${address}_${timestamp}.txt"
变量名周围的大括号有助于Bash知道您想要替换变量$site
和$address
的值。否则,因为\uu
是变量名称中的有效字符,它认为您需要使用变量$site\u location\u
和$address\u
(这些变量不存在)。您只需要:
filename="${site}_location_${address}_${timestamp}.txt"
变量名周围的大括号有助于Bash知道您想要替换变量
$site
和$address
的值。否则,因为
是变量名中的有效字符,它认为您需要使用变量$site\u location\u
和$address\u
(它们不存在)。点(
)是PHP中的字符串连接运算符,而不是shell脚本中的。旁注:正如答案所指出的,这里不需要命令替换。但在执行此操作时,请使用现代形式的$(command)
,而不是`command`
$()
更易于阅读,并且可以方便地嵌套。点(
)是PHP中的字符串连接运算符,而不是shell脚本中的字符串连接运算符。旁注:正如答案所指出的,这里不需要命令替换。但在执行此操作时,请使用现代形式的$(command)
,而不是`command`
<代码>$()更易于阅读,并且可以方便地嵌套。感谢这两条注释的帮助。。这只是稍微多了一点解释。感谢这两条评论的帮助。。这只是有稍微多一点的解释。