我在个人机器上运行 OS/X,在远程服务器上运行 Linux。(即使在 Xserve 还在制造时,我也买不起。)我很想为这两个文件使用相同的 .bashrc 文件,我想让 ls 显示颜色,这样我就可以识别可执行文件、目录和喜欢。
但是lsLinux 上的 GNU想要看到--colors命令行开关,否则它会拒绝显示颜色。Apple 的(BSD?)ls更喜欢查看export CLICOLORS=1shell 变量来告诉它显示颜色。
我会两者都做,但ls如果Apple看到一个未知的--colors开关,它就会呕吐。
.bashrc 中有没有好的方法可以让我检测是否ls接受开关,然后决定是否使用它作为别名--colors?
我写了一个小 Bash 脚本,spfquery用于检查我的域电子邮件 SPF 记录,如果它传递所有提供商的 IP 地址:
#!/bin/bash
# RED="\033[1;31m"
GREEN="\033[1;32m"
NOCOLOR="\033[0m"
email="[my email address]" # deleted for bots not to hound me
declare -a ips=("88.86.120.212" "88.86.120.223" "88.86.120.250" "88.86.120.213" "88.86.120.103" "46.234.104.23" "46.234.104.24")
echo -e "\n\n"
for ip in "${ips[@]}"
do
echo -e "${GREEN}$ip${NOCOLOR}"
spfquery -sender $email -ip $ip -helo kolbaba.stable.cz
echo -e "\n\n"
done
Run Code Online (Sandbox Code Playgroud)
注意,有RED注释掉。那是因为我希望生成的消息以以下任何一个开头:
failsoftfailneutralunknownerrornone即不与:
pass以红色着色。
但如何做到这一点对我来说是个谜?