bash, command not found [duplicate]

2020-02-01 08:07发布

i'm having trouble fixing the error in this bash script, I seriously have no idea what I did wrong, any help is appreciated thanks

[centoslive@livecd ~]$ sh ListFich.sh test
Synthese, Question 2
ListFich.sh: line 9: [-d: command not found
Il n'y a aucun repertoire qui se nomme test
ListFich.sh: line 15: [-f: command not found
Il n'y a aucun fichier qui se nomme test
[centoslive@livecd ~]$ 
#!bin/bash

echo "Synthese, Question 2"

if test $# -eq 0; then
    echo "Argument Manquants"
    exit 1 
else 
    if [-d $1];then
        ls -d $1
        exit 1
    else 
        echo "Il n'y a aucun repertoire qui se nomme $1"
    fi
    if [-f $1]; then
        if [ -s $1]; then
            ls -l $1
            exit 1
        else 
            ls -l $1
            echo "Le fichier $1 est vide"
            exit 1
        fi
    else 
        echo "Il n'y a aucun fichier qui se nomme $1"   
    fi
fi

标签: linux bash shell
2条回答
淡お忘
2楼-- · 2020-02-01 08:45

You need spaces before and after [ and ]. See help [ for details.

查看更多
叼着烟拽天下
3楼-- · 2020-02-01 08:50

Add a space after [ and before ].

[ -d $1 ]
 ^     ^
查看更多
登录 后发表回答