Bash:单引号变量



先来看看这个问题:Bash或GoogleCL:在字符串参数

中添加新行

我现在想在"summary"中添加一个变量${date}:

google youtube post ~/videos/cat-falls-down-stairs.avi Comedy 
    --tags 'currency of the internet' 
    --summary $'Today is ${date}. Poor whiskers takes a tumble.nShe'''s fine, though, don'''t worry.'

但是变量不会在bash单引号内展开。

这是可能的吗?

注意:GoogleCL是用python编写的命令行程序。我使用的是Ubuntu 10.10和Python 2.6。

与其尝试在单引号字符串中展开变量,典型的解决方案是将单引号字符串和双引号字符串连接起来。换句话说:

<>之前今天是"${日期}"。可怜的……

我将在列表中添加另一个选项:定义一个变量为newline,然后在双引号内使用。

nl=$'n'
...
   --summary "Today is ${date}. Poor whiskers takes a tumble.${nl}She's fine, though, don't worry."

变量不能在单引号内展开。你可以像William建议的那样做,或者你可以把这行重写成双引号,这样可以按照你的需要展开变量。

"Today is ${date}. Poor whiskers takes a tumble.nShe's fine, though, don't worry."

好处:这样你就不必转义你的单引号了。

现在我读了链接,你说n不会展开。解决这个问题的方法是这样的:

--summary $(echo -e "Today is...")

使用子shell有点粗糙,但它可以使您避免反划引号。

相关内容

  • 没有找到相关文章

最新更新