134. Shell 常犯错误

export 相关

  • 路径不会展开
    • export LN_TARGET_DIR="~/.local/bin" 中 ~ 不会展开
      正确用法: export LN_TARGET_DIR=~/.local/binexport LN_TARGET_DIR="$HOME/.local/bin"

link 相关

  • 如果想 ln 多个文件, 建议使用 yazi
  • mac 的 ln 没有 -r 选项
  • 如果你要覆盖的旧软链接, 碰巧是指向一个”目录(文件夹)”的, ln -sf 的行为会完全失控.
    千万记得加上 -n 参数!

括号族

符号 主要功能 示例 运行环境
() 子 Shell (cd /; ls) 开启新进程
$( ) 取结果 files=$(ls) 捕获输出
(( )) 算数题 ((a++)) 内部计算
[ ] 旧版判断 [ $a = "b" ] 调用外部 test
[[ ]] 新版判断 [[ $a == "b" ]] 内置逻辑
{ } 当前块 { ls; } 当前进程
${ } 变量处理 ${VAR:-8888} 变量扩展

[!NOTE]
要隔离用 (),要判断用 [[ ]],要算数用 (( )),拿结果用 $( )