我正在尝试从github上的要点加载git别名。由于某种原因,该命令执行find,但是当我尝试执行任何别名时,它们要么被错误地映射(例如,gsts-> git stash而不是gsts-> git status),要么它们根本没有被映射。
#!/bin/bash
update_git_aliases(){
GIST_URL='https://gist.githubusercontent.com/Moyoka22/ec605b0b52fee6d6d30d5f72822938f4/raw/git-aliases'
RESPONSE="$(wget --no-cache -qO- ${GIST_URL})"
if [ ${?} -ne 0 ]
then
echo 'Download failed. Exiting.'
return 1
fi
echo ${RESPONSE} > ${1}
chmod +x ${1}
}
DOWNLOAD_FAILED=0
ALIAS_FILE="${HOME}/.config/git-aliases"
if [ ! -f ${ALIAS_FILE} ]
then
echo "Git aliases not found! Downloading..."
update_git_aliases ${ALIAS_FILE}
DOWNLOAD_FAILED=${?}
fi
if [ ${DOWNLOAD_FAILED} -ne 0 ]
then
echo "Downloading aliases failed."
exit 1
fi
cat ${ALIAS_FILE} | bash
别名命令必须在当前的Shell进程中运行才能生效。
cat ${ALIAS_FILE} | bash
在新的子进程中执行ALIAS_FILE中的别名命令,而不是您的Shell,而不是程序的Shell。
source
在当前shell中运行命令。您需要source
从当前外壳(而不是程序)中获取文件。您可以在文件更新后执行此操作。为了使它永久存在,您将需要添加source "${HOME}/.config/git-aliases"
到您的shell配置中。
像这样的许多程序所做的是在最后打印出必要的命令。
echo "$ALIAS_FILE updated"
echo "Make sure `source $ALIAS_FILE` is in your $HOME/.bash_profile"
echo "Run `source $ALIAS_FILE` to use it in your current shell"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句