我对 bash 脚本很陌生,所以我不能真正理解下面这一行的作用:
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
我猜这个双方括号是一个 if 语句。我知道我们将 "Host *\n\tStrictHostKeyChecking no\n\n" 转换为 config 文件,但那里的其他内容是什么。非常感谢新手的一些文档或教程。提前致谢!
最佳答案
[[ ... ]]
是一个函数,它计算其中的语句并返回 true 或 false。
-f
表示“文件存在”:http://tldp.org/LDP/abs/html/fto.html
&&
表示“and”,表示如果前一条语句返回true则执行下一条语句
echo -e
表示将第二个参数中的字符串打印到标准输出并解释转义序列,例如“\n”。
> ~/.ssh/config
表示将前面语句的stdout写入“~/.ssh/config”
详细且可能更容易理解的版本是:
if [[ -f /.dockerenv ]]; then
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
fi
关于linux - 无法理解简单的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51346416/