我需要在我的 bash 脚本中设置一个变量
#!/usr/bin/env bash
GITNAME= git config --global user.name
echo " $GITNAME "
Run Code Online (Sandbox Code Playgroud)
但它似乎不是这样工作的。
它是如何工作的?
假设您正在尝试执行git
命令并将其结果存储在一个变量中,您将需要$(...)
语法,将命令放在括号中:
GITNAME="$(git config --global user.name)"
printf '%s\n' "$GITNAME"
Run Code Online (Sandbox Code Playgroud)
另请注意,=
分配中的之后没有空格。正如 sjsam 指出的那样,最好在括号周围引用。那是因为在命令替换后单词拆分和 glob 扩展以及其他几个解析步骤仍然会发生,所以如果你的名字包含,说*
glob 将被扩展,这可能不是你想要的。
作为样式说明,您通常不应将变量名称全部使用大写,因为这可能会导致它们与环境变量发生冲突。
几个建议
下面有什么问题
GITNAME= git config --global user.name
Run Code Online (Sandbox Code Playgroud)
=
表格周围不应有空格variable=value
$()
代替它们。更正的陈述
gitname="$(git config --global user.name)" # Error proof
Run Code Online (Sandbox Code Playgroud)