Bash 将函数添加到/etc/profile会导致gnome在登录后重新启动
我最近在Ubuntu11.04中的/etc/profile中添加了以下bash函数定义(它是一个将CD命令快捷连接到特定开发目录的函数): 但是,一旦我这样做了(如果我从终端shell中获取/etc/profile,这很好),我就无法登录到Gnome。它登录正常,但随后它立即关闭Gnome并将我带回登录屏幕。如果我从我的/etc/profile中删除这些内容,它将再次允许我正常登录Bash 将函数添加到/etc/profile会导致gnome在登录后重新启动,bash,login,profile,gnome,Bash,Login,Profile,Gnome,我最近在Ubuntu11.04中的/etc/profile中添加了以下bash函数定义(它是一个将CD命令快捷连接到特定开发目录的函数): 但是,一旦我这样做了(如果我从终端shell中获取/etc/profile,这很好),我就无法登录到Gnome。它登录正常,但随后它立即关闭Gnome并将我带回登录屏幕。如果我从我的/etc/profile中删除这些内容,它将再次允许我正常登录 我不清楚是什么原因导致gnome重新启动。关于问题在哪里有什么想法吗?您将其置于调试状态,然后查看是什么原因导致它
我不清楚是什么原因导致gnome重新启动。关于问题在哪里有什么想法吗?您将其置于调试状态,然后查看是什么原因导致它重新启动。使用
set-x
命令启用调试模式。类似地,set+x
命令将禁用它
将
set-x
放在/etc/profile
的顶部会导致打印调试信息 您将其置于调试状态,并查看是什么导致它重新启动。使用set-x
命令启用调试模式。类似地,set+x
命令将禁用它
将
set-x
放在/etc/profile
的顶部会导致打印调试信息 /etc/profile
源于/bin/sh
,这可能是Gnome启动期间发生的事情。它可能被特定于bash的[…]
语法阻塞了。(/bin/sh
可能是也可能不是指向/bin/bash
的符号链接,具体取决于系统)
因为您的函数看起来是特定于BASH的,所以您可以考虑将其放入“代码>/ETC/BASH.BASHC ”,而不是<代码> /ETC/Prime<代码>,或者甚至<代码> $HOME/.BASHC 。(在非交互式shell中需要它吗?
/etc/profile
由/bin/sh
提供,这可能是在Gnome启动期间发生的事情。它可能被特定于bash的[…]
语法阻塞了。(/bin/sh
可能是也可能不是指向/bin/bash
的符号链接,具体取决于系统)
因为您的函数看起来是特定于BASH的,所以您可以考虑将其放入“代码>/ETC/BASH.BASHC ”,而不是<代码> /ETC/Prime<代码>,或者甚至<代码> $HOME/.BASHC 。(您需要在非交互式shell中使用它吗?
谢谢。最后我把它放在了/etc/bashrc中。谢谢。最后我把它放在了/etc/bashrc中。我很感激你的建议,我确实使用了这个,但另一个答案确实是问题所在,所以我接受了这个答案。不过,我还是很感激你提供的信息。。。这在将来肯定会有帮助。当然,没问题。祝你新年快乐,万事如意我很感激你的建议,我确实使用了这个,但另一个答案确实是问题所在,所以我接受了这个答案。不过,我还是很感激你提供的信息。。。这在将来肯定会有帮助。当然,没问题。祝你新年快乐,万事如意################## JMOZTELEPORT BEGIN ##################
function JMozTeleport() {
version=0.4.58
pathtopythonpackages=`python -c "from site import getsitepackages; print getsitepackages()[0]"`
pathtopythonteleport="$pathtopythonpackages/JMozTools-$version-py2.7.egg/JMozTools/JMozTeleport.py"
# $1 is the command to run
isversion=0
ishelp=0
if [[ "$1" == "-v" || "$1" == "--version" ]]
then
isversion=1;
fi
if [[ "$1" == "-h" || "$1" == "--help" ]]
then
ishelp=1;
fi
if [ -z $1 ]
then
python "$pathtopythonteleport" "-h"
elif [ $1 == "version" ]
then
echo $version
elif [ $isversion == 1 -o $ishelp == 1 ]
then
python "$pathtopythonteleport" "$@"
else
cd $(python "$pathtopythonteleport" "$@")
fi
}
################### JMOZTELEPORT END ###################