#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
To nie działa. Czy ktoś może pomóc?Jak korzystać z Bash, aby utworzyć folder, jeśli jeszcze nie istnieje?
#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
To nie działa. Czy ktoś może pomóc?Jak korzystać z Bash, aby utworzyć folder, jeśli jeszcze nie istnieje?
Trzeba przestrzenie wewnątrz nawiasów [
i ]
:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]
then
mkdir -p /home/mlzboy/b2c2/shared/db
fi
myślę, że należy ponownie sformatować Kod trochę:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
pierwszy, w bash "[" jest po prostu polecenie, które oczekuje ciągu "]" jako ostatniego argumentu, dlatego ważne są białe spacje przed nawiasem zamykającym (jak również między "!" i "-d", które również muszą być dwoma oddzielnymi argumentami):
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi
Po drugie, ponieważ używasz przełącznika -p na mkdir
, kontrola ta jest bezużyteczna, ponieważ tak właśnie jest. Po prostu napisz:
mkdir -p /home/mlzboy/b2c2/shared/db;
i to wszystko.
W rzeczywistości nie ma potrzeby sprawdzania, czy istnieje. Skoro już chce go utworzyć, jeśli istnieje, to będzie mkdir zrobić
mkdir -p /home/mlzboy/b2c2/shared/db
Wystarczy zrobić:
mkdir /path/to/your/potentially/existing/folder
mkdir wygeneruje błąd, jeśli folder już istnieje. Aby zignorować błędy, napisz:
mkdir -p /path/to/your/potentially/existing/folder
Nie trzeba robić żadnych kontroli ani nic w tym stylu.
Czystszy sposób, wykorzystaj ocenę skrótów operatorów logicznych powłoki. Prawa strona operatora jest wykonywana tylko wtedy, gdy lewa strona jest prawdziwa.
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db
mmh, nie czystszy: tylko krótszy. Trudno zrozumieć znaczenie takiego stwierdzenia, jeśli natkniesz się na to. –
Podoba mi się to, chociaż argument '-p' sprawia, że sprawdzenie nie jest konieczne. Nadal możesz z niego korzystać, jeśli nie chcesz używać '-p', to znaczy, gdy * nie chcesz * aby wszystkie katalogi nadrzędne były tworzone automatycznie. – ADTC
Właściwie to jest jeszcze krótsze, aby napisać '[-d/path/to/dir] || mkdir/path/to/dir' .. right side jest wykonywany, gdy lewa strona jest fałszywa. – ADTC
Dlaczego masz średniki? – ADTC