几天前我开始学习如何在 shell 中制作脚本。如何制作带有两个参数(文件名和某个目录)的脚本,如果参数不好我想发出错误警报,如果它们正确我想复制给定目录中的文件?到目前为止我做了这个:
#!/bin/bash
if [ -d $1 ] ; then
???
done
else
echo $1 NOT DIRECTORY
exit 1
fi
我单独制作了一个用于检查文件的部分。如何将这些放在一起?
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Use- $0 file"
exit 1
fi
if [ -f $1 ]
then
echo "$1 There is no file with that name"
else
echo "$1 There is no file with that name"
fi
我是 bash 脚本的新手,所以我想获得一些帮助。
答案1
您可以使用这样的结构:
首先检查参数的数量是否正确,在本例中为 2
if arguments not 2 message "Not enough arguments" and exit
检查参数是否是有效的文件和目录。
if argument1 not a file message "Not af file" and exit if argument2 not a directory echo "Not a directory" and exit
如果两个参数都正确,则执行复制:
message "Copying file" copy file to directory
请记住在出现错误时退出,这样脚本就不会继续运行。
您还可以使用一个衬垫来代替 if:
[[ ! -f "$1" ]] && echo "Not a file" && exit