UNIX bash脚本出错,意外标记附近有语法错误

dxxyhpgq  于 2022-11-04  发布在  Unix
关注(0)|答案(2)|浏览(186)

我在尝试执行这个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
nsc4cvqm

nsc4cvqm1#

Bash对空格有非常严格的规定。如果像if [ -f $fajlli ]这样的话,你需要在后面加上空格

t1qtbnec

t1qtbnec2#

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

相关问题