134. Shell 常犯错误
export 相关
- 路径不会展开
export LN_TARGET_DIR="~/.local/bin"中 ~ 不会展开
正确用法:export LN_TARGET_DIR=~/.local/bin或export 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]
要隔离用(),要判断用[[ ]],要算数用(( )),拿结果用$( )