我正在尝试编写一个简单的程序来检查给定的文件名是否指向目录。但我不断收到一个错误,说错误的解释器:没有这样的文件或目录"当我运行./isdir.sh(这是脚本的名称)。
这是我的代码:
#!bin/sh
if [[ $# -ne 1 ]];then
echo "Usage: $0 dir"
exit 1
fi
dir="$1"
dirname = "$1"
if [[ ! -d "$dir" ]]; then
echo "Error: directory $dir not found."
exit 2
fi
if [[ -d "$dirname" ]]; then
echo "$dirname is a directory."
exit 3
另外,重要问题: 如何处理包含空格的输入值?
答案 0 :(得分:0)
你可以这样做:
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo "Usage: $0 dir"
exit 2
fi
dir="$1"
rc=1
if [[ -d "$dir" ]]; then
# it is a directory
rc=0
elif [[ -e "$dir" ]]; then
echo "Error: '$dir' is not a directory"
else
echo "Error: directory '$dir' does not exist"
fi
exit "$rc"
dirname
变量。有关此问题的更多观点,请参阅此相关文章:Check if a directory exists in a shell script