先来看看这个问题: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有点粗糙,但它可以使您避免反划引号。