我正在尝试创建一个带有单个命令行参数的脚本。然后它查看参数,如果它是一个目录名,它只打印该目录存在。如果是文件名,则打印出文件存在。否则,它会尝试使用此名称创建一个目录,并测试它是否成功并在标准输出上报告此内容。
我的代码是:
while read argument; do
if [ $argument -d ]; then
echo "Directory exists"
elif [ $argument -e ]
echo "File exists"
else
mkdir $argument
if [ $argument -d]; then
echo "Directory was created"
else
echo "Error while creating the directory"
fi
fi
done
然后我运行代码./file_name.sh argument
。如果我运行这样的代码,我在第8行得到一个错误,这只是“其他”。虽然这里可能没有必要,但它是第一个如何从命令行接受我想到的参数的选项。
答案 0 :(得分:0)
正如您所提到的,您需要单个命令行参数,因此无需循环
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Help : You have to pass one argument"
exit 0
fi
if [[ -d "$1" ]]; then
echo "Directory exists"
elif [[ -f "$1" ]]; then
echo "File exists"
else
mkdir "$1"
if [ -d "$1" ]; then
echo "Directory was created"
else
echo "Error while creating the directory"
fi
fi
答案 1 :(得分:0)
if [ -d $1 ]; then
echo "Directory exists"
elif [ -e $1 ]; then
echo "File exists"
else
mkdir $1
if [ -d $1 ]; then
echo "Directory was created"
else
echo "Error while creating the directory"
fi
fi
由于提供的链接,我编写了这个解决方案,谢谢。