Bash 带有使文件可执行的参数的脚本
Bash script with argument that makes file executable
我需要制作一个 bash 脚本来检查文件或目录是否存在,如果文件存在,它会检查可执行文件 permission.I 需要修改脚本才能提供来自参数的文件可执行权限。
示例:控制台输入 ./exist.sh +x file_name
应该使文件可执行。
这是未完成的代码,用于检查 file/directory 是否存在以及文件是否可执行。我需要添加 chmod
参数部分。
#!/bin/bash
file=
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
添加 chmod 如下:
if [ ! -x "$file" ]; then
chmod +x $file
fi
这意味着如果文件没有执行权限,则为用户添加执行权限。
如果您的脚本有可选参数,您需要先检查它们。
在只有几个简单参数的情况下,显式检查它们会更简单。
MAKEEXECUTABLE=0
while [ "${1:0:1}" = "+" ]; do
case in
"+x")
MAKEEXECUTABLE=1
shift
;;
*)
echo "Unknown option ''"
exit
esac
done
file=
然后在您确定该文件不可执行后
if [ $MAKEEXECUTABLE -eq 1 ]; then
chmod +x $file
fi
如果您决定添加更复杂的选项,您可能需要使用 getops
:example of how to use getopts in bash
我需要制作一个 bash 脚本来检查文件或目录是否存在,如果文件存在,它会检查可执行文件 permission.I 需要修改脚本才能提供来自参数的文件可执行权限。
示例:控制台输入 ./exist.sh +x file_name
应该使文件可执行。
这是未完成的代码,用于检查 file/directory 是否存在以及文件是否可执行。我需要添加 chmod
参数部分。
#!/bin/bash
file=
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
添加 chmod 如下:
if [ ! -x "$file" ]; then
chmod +x $file
fi
这意味着如果文件没有执行权限,则为用户添加执行权限。
如果您的脚本有可选参数,您需要先检查它们。
在只有几个简单参数的情况下,显式检查它们会更简单。
MAKEEXECUTABLE=0
while [ "${1:0:1}" = "+" ]; do
case in
"+x")
MAKEEXECUTABLE=1
shift
;;
*)
echo "Unknown option ''"
exit
esac
done
file=
然后在您确定该文件不可执行后
if [ $MAKEEXECUTABLE -eq 1 ]; then
chmod +x $file
fi
如果您决定添加更复杂的选项,您可能需要使用 getops
:example of how to use getopts in bash