2014-07-07 4 views

Odpowiedz

15

Wygląda na to, że twoja $ ścieżka dostępu zawiera więcej niż jedno słowo. Może to być wiele linii w pliku .rm.cfg lub ścieżka może zawierać spacje. W każdym razie kończysz z

if [ ! -z word word word/$1 ] 

co nie jest dobre. Jeśli dopiero spodziewa pojedynczą ścieżkę i chcą chronić przed ścieżki zawierające spacji, zmienić, jeśli wiersz

if [ ! -z "$pathname/$1" ] 
+0

Dla mnie problemem było to, że miałem spacją mojej definicji $ ścieżki. Użyłem funkcji paska, aby temu zapobiec (zobacz [tutaj] (https://www.gnu.org/software/make/manual/html_node/Text-Functions.html)). – rkersh

+0

Zaakceptuj to jako odpowiedź! –

8

miałem do czynienia sam błąd operator binarny oczekiwany gdzie jestem coraz bardziej wtedy za jedno słowo niektóre zmienne. Kiedy użyłem tego jako wzmianki poniżej.

if [ ! -z ${variable} ]; 

Więc dla rozwiązać ten problem I zmienił go do:

if [[ ! -z ${variable} ]]; 
+0

świetnie! pracował dla mnie. Ale jakikolwiek pomysł, dlaczego to rozwiązanie działa? –