首先来看看这个问题: Bash or GoogleCL: new line in a string parameter
我想在现在的“摘要”中添加一个变量$ {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编写的命令行程序。我使用Python 2.6在Ubuntu 10.10上。
答案 0 :(得分:14)
不是尝试在单个带引号的字符串中扩展变量,而是典型的解决方案是连接单引号和双引号字符串。换句话说:
'Today is'"${date}"'. Poor' ...
答案 1 :(得分:4)
我将在列表中添加另一个选项:将变量定义为换行符,然后在双引号内使用它。
nl=$'\n'
...
--summary "Today is ${date}. Poor whiskers takes a tumble.${nl}She's fine, though, don't worry."
答案 2 :(得分:1)
变量不会在单引号内展开。您可以像William建议的那样做,或者您可以将该行重写为双引号,这将根据需要扩展变量。
"Today is ${date}. Poor whiskers takes a tumble.\nShe's fine, though, don't worry."
奖励:这样做你不必逃避单引号。
现在我读了链接,你说\ n不会扩展。对此的解决方法是这样的:
--summary $(echo -e "Today is...")
为此使用子shell有点粗糙,但它可以避免反斜杠引用。