我只想比较两个文件的第一行,而不是整个文件。我该怎么做?我只需要第一行的解决方案,但是如果您可以指定行数,那将是一个更好的答案。
所以 diff 不会返回以下两个文件之间的差异:
a
1
2
Run Code Online (Sandbox Code Playgroud)
和:
a
3
4
Run Code Online (Sandbox Code Playgroud) 假设我想将以下命令存储在一个变量中
cd "/cygdrive/c/Program Files/"
Run Code Online (Sandbox Code Playgroud)
所以我这样做
dir="cd \"/cygdrive/c/Program Files/\""
Run Code Online (Sandbox Code Playgroud)
那应该存储导航到 Program Files 目录的命令,所以当我输入 $dir 时,它会将我带到该目录。要检查引号是否已正确转义,我键入
echo $dir
Run Code Online (Sandbox Code Playgroud)
这给了我
cd "/cygdrive/c/Program Files/"
Run Code Online (Sandbox Code Playgroud)
所以一切都应该正常工作。然而,当我打字时,
$dir
Run Code Online (Sandbox Code Playgroud)
我得到
bash: cd: "/cygdrive/c/Program: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我正在使用 Cygwin,但我认为这个问题一般适用于 bash。
注意:请参阅下面我的第二次编辑以获取有关该问题的更新。
直到上周,Cygwin 对我来说都很好。现在 .bashrc 没有得到来源。我一定安装了一些东西或改变了一些东西,但我不记得到底是什么导致了这个问题。当我启动 Cygwin 时,我在我的 Windows 家中并且我的别名都不起作用。我必须手动获取 .bashrc。以下是我的 Cygwin.bat:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:我的 .bash_profile 包含以下内容,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
Run Code Online (Sandbox Code Playgroud)
EDIT2:重要!当我启动 Cygwin 时,它会在我的 Windows 主文件夹中启动。我试着把我的 .bash_profile 和 .bashrc 放在这个文件夹中,它们的来源是正确的!这意味着问题已简化为弄清楚为什么 Cygwin 在 Windows 主文件夹中启动,而不是在正常的 Cygwin 主文件夹中启动。
EDIT3: 运行 grep Gulshan /etc/passwd/ 的结果
$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的 Ruby 版本设置为 1.9.2,但我无法从系统 Ruby 安装中更改它。我究竟做错了什么?
我的终端输出是:
$ rvm list
rvm rubies
=> ruby-1.9.2-p180 [ i386 ]
$ rvm use default
Using /usr/share/ruby-rvm/gems/ruby-1.9.2-p180
$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
Run Code Online (Sandbox Code Playgroud) 因此,当我打开一个新终端(我在 Arch Linux 上使用 terminator)时,我将其配置为要么打开一个新tmux
会话(如果会话不存在),要么附加到现有会话。当我exit
在提示符下输入时,它会退出 tmux 会话。我必须exit
再次输入才能退出终端。我想要的是,输入exit
一次将退出终端,但保持tmux
运行状态,因此下次我打开终端时,它将重新连接到上一个tmux
会话。本质上,这相当于单击窗口管理器的退出按钮,但我希望在键入 时使用此功能exit
。
编辑:
这就像我想要的:
alias exit='if [[ $TMUX = "" ]]; then exit; else tmux detach; exit; fi'
Run Code Online (Sandbox Code Playgroud)
但问题是应该在包含 tmux 会话的终端中调用exit
之后,而不是 tmux 会话本身。tmux detach
在 .dir-locals.el 中,我只能将变量设置为值,无法调用函数。但是,执行以下代码后,我需要禁用然后重新启用whitespace-mode
:
((nil . ((indent-tabs-mode . t)
(whitespace-style . (face empty trailing lines-tail)))))
Run Code Online (Sandbox Code Playgroud)
我尝试(eval . (global-whitespace-mode))
根据我发现的另一个答案进行添加,但这完全破坏了空白模式,然后我无法启用或禁用它。如何重新加载这个次要模式?