帮助理解 .bashrc 中的行

帮助理解 .bashrc 中的行

我尝试到处寻找这行代码在我的 .bashrc 中的作用。我想知道的原因是因为现在 ~/.pam_environment 是受到推崇的。这是行:

[[ -s /home/$USER/.nvm/nvm.sh ]] && . /home/$USER/.nvm/nvm.sh

我认为我已经将其缩小到条件检查以确保文件nvm.sh存在并且大于 0 字节。但我不明白接下来的内容。&&通常表示“和”,但我不明白为什么在检查之后需要这样做,也不明白为什么.没有附加到文件名。

基本上我想知道的是,如何将其放入.pam_environment仅接受赋值表达式的文件中。

编辑:此行目前允许我从终端运行 NVM,但我真的很想了解,只是为了学习。

答案1

是的,您说得对,[[ -s ... ]检查文件是否存在。如果存在,它将以状态退出0,如果不存在,它将以状态退出1(即失败)。

&&如果前一个命令成功(即退出状态为 ),则命令/操作符/其他命令将运行下一个命令。0相反||,如果前一个命令失败(即不失败0),则运行下一个命令。

.文件名之前(中间有空格)运行该文件,但也会保留它所做的任何环境变量更改。例如,如果我test.sh这样做:

#!/bin/bash
FOO=bar
BAR=baz
BAZ=foo
PATH="FOO:$PATH"

并且我运行. path/to/test.sh,将会有新的变量:FOOBARBAZ,并且PATH将会更新。请注意source,我认为 的作用与 相同.编辑:是的,source.在 bash 中是同义词。

相关内容