Bash 不';t在tcsh上工作:设置kk=`cd$THE_路径;pwd`

Bash 不';t在tcsh上工作:设置kk=`cd$THE_路径;pwd`,bash,csh,tcsh,Bash,Csh,Tcsh,在BASH中获取绝对路径的典型方法是: `cd $THE_PATH; pwd` 但这在tcsh/csh上不起作用。如果在tcsh中,您 set kk=`cd $HOME; pwd` kk将保持绝对路径的正确值,但是,非常奇怪,“ls$kk”给你错误,它说路径不存在~ 有人能告诉我为什么会这样吗?谢谢 [编辑] set kk=`cd $HOME; pwd` cd $kk 将给出: "^[]2;myid@machine003:/u/myid^G: No such file or directo

在BASH中获取绝对路径的典型方法是:

`cd $THE_PATH; pwd`
但这在tcsh/csh上不起作用。如果在tcsh中,您

set kk=`cd $HOME; pwd`
kk将保持绝对路径的正确值,但是,非常奇怪,“ls$kk”给你错误,它说路径不存在~

有人能告诉我为什么会这样吗?谢谢

[编辑]

set kk=`cd $HOME; pwd`
cd $kk
将给出:

"^[]2;myid@machine003:/u/myid^G: No such file or directory."
但是echo$kk是可以的~

"/u/myid"

问题是您定义了一个
cwdcmd
别名。关于
tcsh
cwdcmd

... Runs after every change of working directory. ...
即:执行
cd
时,还将执行定义的
echo
命令,并将输出保存到
$kk
变量中

为了避免这种情况,您可以删除
cwdcmd
别名:

unalias cwdcmd

但是请注意,这样做的副作用是,所需的功能(可能设置
xterm
标题)不再起作用。

问题在于您定义了
cwdcmd
别名。关于
tcsh
cwdcmd

... Runs after every change of working directory. ...
即:执行
cd
时,还将执行定义的
echo
命令,并将输出保存到
$kk
变量中

为了避免这种情况,您可以删除
cwdcmd
别名:

unalias cwdcmd

但是请注意,这样做会产生副作用,即所需的功能(可能设置
xterm
标题)不再起作用。

echo$kk的输出是什么?您期望的值是什么?它对我有效,至少对我刚刚尝试过的几个案例有效。
$the_PATH
的值是多少,您从哪个目录开始,设置后
$kk
的值是多少?路径中的空格或其他特殊字符可以解释您看到的问题。请尝试这样做:
echo“$kk”>temp.txt
,然后查看
temp.txt
包含的内容。我想知道您是否拾取了不回显但仍然是字符串一部分的字符(例如Ctrl-G)。我试过你的例子,但它们在我的系统上与tcsh一起工作。@David。是的,就像我在问题中编辑的一样,
echo“$kk”>temp.txt
显示它包含奇怪的字符。我只是不明白为什么会这样。“cd”是shell内置的,pwd是/bin/pwd。@solotim:你能在做了
unalias cwdcmd
之后尝试执行你问题的命令吗?
echo$kk
的输出是什么?你期望值是多少?它对我来说很有效,至少对我刚刚尝试过的几个案例是这样。
$the_PATH
的值是多少,您从哪个目录开始,设置后
$kk
的值是多少?路径中的空格或其他特殊字符可以解释您看到的问题。请尝试这样做:
echo“$kk”>temp.txt
,然后查看
temp.txt
包含的内容。我想知道您是否拾取了不回显但仍然是字符串一部分的字符(例如Ctrl-G)。我试过你的例子,但它们在我的系统上与tcsh一起工作。@David。是的,就像我在问题中编辑的一样,
echo“$kk”>temp.txt
显示它包含奇怪的字符。我只是不明白为什么会这样。“cd”是shell内置的,pwd是/bin/pwd。@solotim:在执行unalias cwdcmd之后,您能尝试执行问题的命令吗?