我想实现某个功能,例如判断某个目录下是否存在一个文件,例如叫series_migration_task.xml,如果存在该文件则跳过不做什么操作,如果不存在该文件,则拷贝脚本main.sh同一目录下的series_migration_task.xml到其目录,我的实现如下:
#!/bin/sh
myFile="/root/apue/series_migration_task.xml "
# 这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
cp ./series_migration_task.xml /root/apue/
fi
echo "success"
我的初衷是判断目录/root/apue目录下是否有文件series_migration_task.xml文件,如果没有的话就cp拷贝当前目录下的series_migration_task.xml到目录下。结果按照这个脚本去操作,不管/root/apue下是否存在该文件都会去覆盖,不知道是为什么?
我搜得-f是判断文件是否存在,不知道哪里有问题。
问题答案:
参考采纳答案评论,因为在第二行文件myFile最后引号前多了个空格。
有可能是没有读取
/root
的权限试试以 sudo 执行,或是: