我需要在 bash 脚本中设置一个变量
#!/usr/bin/env bash
GITNAME= git config --global user.name
echo " $GITNAME "
但似乎并非如此。
它是如何工作的?
答案1
假设您尝试执行git
命令并将其结果存储在变量中,您将需要语法$(...)
,将命令放在括号内:
GITNAME="$(git config --global user.name)"
printf '%s\n' "$GITNAME"
=
另请注意,作业中的后面没有空格。正如 sjsam 指出的那样,最好也在括号周围引用。这是因为在命令替换之后,分词和全局扩展以及其他几个解析步骤仍然会发生,因此如果您的名称包含在内,那么*
全局将被扩展,而这可能不是您想要的。
作为风格说明,您通常不应使用全部大写的变量名称,因为这可能会导致它们与环境变量发生冲突。
答案2
答案3
要将命令的输出保存为变量bash
,请使用命令替换$()
:
GITNAME="$(git config --global user.name)"
请注意,在 中,变量声明bash
周围不能有任何空格。=
另外,请注意大写变量命名,因为它可以替换具有相同名称的任何环境变量(通常为大写)。除非绝对必要,否则对用户定义的变量使用小写字符。
另一方面,如果您只需将字符串保存为变量:
GITNAME="git config --global user.name"