pathname=$(cat $HOME/.rm.cfg) if [ ! -z $pathname/$1 ]
.rm.cfg
est un fichier qui contient le répertoire suivant
/ home / nom d’utilisateur / supprimé1
$1
est le nom d’un fichier, par exemple. verre
pourquoi fait la ligne si [ ! -z $pathname/$1 ]
[ ! -z $pathname/$1 ]
donne une erreur attendue à l’opérateur binary.
On dirait que votre chemin d’access $ comprend plus d’un mot. Pourrait être plusieurs lignes dans votre fichier .rm.cfg, ou peut-être que le chemin contient des espaces. De toute façon, vous vous retrouvez avec
if [ ! -z word word word/$1 ]
ce qui n’est pas bon. Si vous vous attendez à un seul chemin et que vous souhaitez vous protéger contre le chemin contenant des espaces, changez votre ligne if pour
if [ ! -z "$pathname/$1" ]
J’avais dû faire face à la même erreur d’opérateur binary attendu où j’obtiens plus d’un mot pour certaines variables. Lorsque je l’ai utilisé comme mentionné ci-dessous.
if [ ! -z ${variable} ];
Donc, pour résoudre cette erreur, je l’ai changé pour:
if [[ ! -z ${variable} ]];