Mac下的shell目录文件空格问题浅析

今天写个脚本,发现一个诡异的问题,主要是目录或文件中有空格导致脚本报错,具体案例如下:

错误示范1:
#!/bin/bash
file="/Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registry.dat"
#if [ -e $file ]
if [ -e "$file" ]
then
        echo "文件存在";
else
        echo "文件不存在";
fi
错误示范2:
#!/bin/bash
file=/Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registry.dat
#if [ -e $file ]
if [ -e "$file" ]
then
        echo "文件存在";
else
        echo "文件不存在";
fi
正确示范:
#!/bin/bash
if [ -e /Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registry.dat ]
then
        echo "文件存在";
else
        echo "文件不存在";
fi

具体原因,暂时不得而知,先放着吧,权当mark。

评论

评论正在提交中...请稍后
评论提交成功...