我正在编写一个脚本来设置环境,我希望能够使用新名称,email和github acc配置git。我使用选项-n -e -g传递的新值分别如下面的脚本所示。
不幸的是,如果user.name包含空格,$git_name
变量仅指它的第一部分。有没有办法正确地做到这一点干净?
#!/bin/bash
git_github=`git config --global --get-all user.github`
git_email=`git config --global --get-all user.email`
git_name="$(git config --global --get-all user.name)"
echo "Before:" $git_github $git_email $git_name
while getopts :g:e:n: option
do
case "${option}"
in
g) git config --global user.github ${OPTARG};;
e) git config --global user.email ${OPTARG};;
n) git config --global user.name ${OPTARG};;
esac
done
git_github=`git config --get user.github`
git_email=`git config --get user.email`
git_name=`git config --get-all user.name`
echo "After:" $git_github $git_email $git_name
答案 0 :(得分:0)
该命令需要将名称封装到括号中,因此解决方案是:
git config --global user.name "\"${OPTARG}\""