我正在编写一个脚本,如果将参数传递给该脚本,则需要创建一个文件。如果没有传递任何参数,则它将请求fileName,但它需要具有默认权限-rwx- --- - ---
。我使用这个命令chmod a=-rwx
来删除所有默认权限,然后使用chmod u=+rwx
来获得所需的权限,但它不起作用。有人能帮忙吗?
#!binbash
if [ $#==0 ]; then
echo "Please enter a file name?"
read fileName
if [ -f $fileName ]; then
echo "File already exist! Opening for Editing"
sleep 3
nano $fileName
else
echo "File created with the name $fileName"
echo "Opening $fileName for editing "
sleep 3
echo "#!binbash" >$fileName
nano $fileName
fi
elif [ -f $1 ]; then
echo "File already exists with the name $1"
echo "Opening for editing"
sleep 3
nano $1
else
fileName="$1"
chmod a=-rwx $fileName
chmod u=+rwx $fileName
echo "File created with the name $filename"
echo "Opening $fileName for editing "
echo "#!binbash" >$fileName
sleep 3
nano $1
fi
您的chmod
语法不正确。操作是=
将模式设置为特定值,+
添加模式,或者-
删除模式;不能将它们与CCD_ 8和CCD_。
您可以对单个文件执行多个操作,方法是使用,
将它们分隔开。
所以应该是:
chmod go-rwx,u+rwx "$fileName"
另一个问题:
if [ $#==0 ]
应该是
if [ $# -eq 0 ]
使用-eq
进行数值比较,并且在shell条件下运算符周围需要空格。
第三个问题:在创建文件之前执行chmod
。放在之后
echo "#!/bin/bash" >"$fileName"
第四个问题:#!binbash
应该是#!/bin/bash
。
最后,记住引用变量,以防它们包含空格。