UNIX bash脚本错误.意外标记附近的语法错误



在尝试执行这个bash脚本时,我在第16行得到错误。错误是这样的:第16行:语法错误靠近意外的标记then' line 16:然后muj=ls -l $fajlli | awk '{print $7}''

#!/bin/bash
if [ -f modified ]
then rm modified
fi
touch modified
muajt=`date | awk '{print $2}'`
ditet=`date | awk '{print $3}'`
tegjithafajllet=`ls`
for fajlli in $tegjithafajllet
do
if[ -f $fajlli ]
16.         then muj=`ls -l $fajlli | awk '{print $7}'`
dit=`ls -l $fajlli | awk '{print $8}'`
if[ $muajt = $muj -a $ditet = $dit ]
then echo $fajlli >> modified
fi
fi
done

Bash对空白空间有非常严格的规则。你需要像if [ -f $fajlli ]

这样的空格

你没有关闭if语句

#!/bin/bash
if [ -f modified ]
then rm modified
fi
touch modified
muajt=$(date | awk '{print $2}')
ditet=$(date | awk '{print $3}')
tegjithafajllet=$(ls)
for fajlli in $tegjithafajllet
do
if [ -f "$fajlli" ]; then
muj=$(ls -l "$fajlli" | awk '{print $7}')
dit=$(ls -l "$fajlli" | awk '{print $8}')
fi
if [ "$muajt" = "$muj" ] && [ "$ditet" = "$dit" ]; then
echo "$fajlli" >> modified
fi
done

最新更新