Bash脚本无法检测已存在的~/.junk目录问题求助
问题原因及解决办法
核心原因:双引号包裹的
~不会被Bash解析为用户主目录路径,而是被当作普通字符串处理。执行[ -d "~/.junk" ]时,脚本实际检查的是当前工作目录下名为~的子目录中的.junk,而非你主目录下的.junk,因此返回false。两种解决方式:
- 移除双引号,让
~正常展开:#!/bin/bash if [ -d ~/.junk ]; then echo "yeet" fi - 使用
$HOME环境变量替代~(可保留双引号,避免路径含特殊字符时出问题):#!/bin/bash if [ -d "$HOME/.junk" ]; then echo "yeet" fi
- 移除双引号,让
内容的提问来源于stack exchange,提问作者Ben Alan
相关产品推荐
相关产品推荐

