我在用着韓軟體作为我的终端,我有一个脚本,当我更改目录时运行,用当前目录替换窗口标题。我最初让它在我的.cshrc文件,以便它将在新的 shell 中更改窗口标题。
当我less
在控制台中查看文本文件时,我会看到此脚本的输出,而不是文件内容。这实际上毫无用处less
。
答案1
您的问题是由于文件~/.cshrc
输出到控制台的内容干扰了 的操作而引起的less
。
cd
解决此问题的一种方法是在执行影响控制台或改变 shell 脚本运行方式的任何操作(例如,设置别名)之前检查交互式 shell 。
if ($?prompt) then
# Do things that affect interactive shells here
endif
答案2
根据此常见问题解答对于开发人员主页上的 Less,事实证明,文件中任何生成控制台输出的内容(我的窗口标题脚本就是这样做的).cshrc
都会干扰 的输出less
。显然less
会调用 shell 来打开和查看文件,并且由于 shell 的任何新实例都会自动执行 中的命令.cshrc
,因此在该步骤发生的任何控制台输出都会干扰该工具的操作。
解决方案是从文件中删除对我的脚本的调用.cshrc
。我可以将其放入文件中.login
,但需要注意的是,任何对 shell 的新调用都不会重新执行该文件中的命令。