bash,命令未找到

Joe*_*e E 5 linux bash shell

我在修复这个bash脚本中的错误时遇到了问题,我真的不知道我做错了什么,感谢任何帮助

[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 ~]$ 
Run Code Online (Sandbox Code Playgroud)
#!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
Run Code Online (Sandbox Code Playgroud)

tar*_*lah 9

添加一个空格之后 [之前 ].

[ -d $1 ]
 ^     ^
Run Code Online (Sandbox Code Playgroud)

  • @JoeE:当你在这里时,考虑使用`[[`和`]]` - bash更强大的内置函数,它提供额外的运算符(=〜,<,>)并且不需要引用你的字符串操作数. (3认同)