我需要创建一个bash脚本来检查文件或目录是否存在,然后如果文件存在,它会检查可执行权限。我需要修改脚本以便能够从参数中赋予文件可执行权限。
示例:控制台输入./exist.sh +x file_name
应使文件可执行。
这是未完成的代码,用于检查文件/目录是否存在以及文件是否可执行。我需要添加chmod
参数部分。
#!/bin/bash
file=$1
if [ -x $file ]; then
echo "The file '$file' exists and it is exxecutable"
else
echo "The file '$file' is not executable (or does not exist)"
fi
if [ -d $file ]; then
echo "There is a directory named '$file'"
else
echo "There is no directory named '$file'"
fi
答案 0 :(得分:1)
添加chmod,例如:
if [ ! -x "$file" ]; then
chmod +x $file
fi
这意味着如果文件没有执行持久性,则为用户添加执行权限。
答案 1 :(得分:1)
如果您的脚本有可选参数,则需要先检查它们。
在只有几个简单参数的情况下,明确检查它们会更简单。
MAKEEXECUTABLE=0
while [ "${1:0:1}" = "+" ]; do
case $1 in
"+x")
MAKEEXECUTABLE=1
shift
;;
*)
echo "Unknown option '$1'"
exit
esac
done
file=$1
然后确定该文件不可执行
if [ $MAKEEXECUTABLE -eq 1 ]; then
chmod +x $file
fi
如果您决定添加更复杂的选项,可能需要使用getops
之类的内容:example of how to use getopts in bash