如何在shell脚本中使用双引号传递变量值

  • 本文关键字:变量值 shell 脚本 bash shell
  • 更新时间 :
  • 英文 :

USER_UID=$1
echo 'generate_token("$USER_UID")'

我希望输出像

generate_token("1234567")

我尝试了多种方法,但都不起作用。它只打印没有值的同一行generate_jwt("$USER_UID">

当您使用单引号时,它会导致shell保留引号内每个字符的文字值。这意味着$将被视为文字$字符。

你应该使用双引号:

USER_UID="$1"
echo "generate_token("$USER_UID")"

从bash手册页,在下引用部分:

双引号中的封闭字符保留引号内所有字符的文字值,但$除外",,,当启用历史扩展时,!.

有关POSIX引用的详细信息,请参阅此处。

交互式shell中的示例:

$ USER_UID='foo'
$ echo "generate_token("$USER_UID")"
generate_token("foo")

如果USER_UID包含空格,也可以使用

$ USER_UID='var with spaces'
$ echo "generate_token("$USER_UID")"
generate_token("var with spaces")

相关内容

  • 没有找到相关文章

最新更新