#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
작동하지 않는 것 같습니다. 누구든지 도울 수 있습니까?
답변
먼저, bash에서 “[“는 마지막 인수로 문자열 “]”이 필요한 명령이므로 닫는 대괄호 앞의 공백 ( “!”와 “-d”사이에 두 개의 별도 인수가 필요함) 역시) 중요하다 :
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi
둘째, -p switch to를 사용 mkdir
하고 있기 때문에,이 검사는 처음에는 수행하기 때문에 쓸모가 없습니다. 그냥 써:
mkdir -p /home/mlzboy/b2c2/shared/db;
그리고 그게 다야.
답변
실제로 존재하는지 여부를 확인할 필요가 없습니다. 존재하는 경우 이미 작성하려고하므로 mkdir 만 수행합니다.
mkdir -p /home/mlzboy/b2c2/shared/db
답변
간단히 :
mkdir /path/to/your/potentially/existing/folder
폴더가 이미 존재하면 mkdir에서 오류가 발생합니다. 오류를 무시하려면 다음을 작성하십시오.
mkdir -p /path/to/your/potentially/existing/folder
점검이나 그와 같은 것을 할 필요가 없습니다.
참고로 :
-p, --parents no error if existing, make parent directories as needed
http://man7.org/linux/man-pages/man1/mkdir.1.html
답변
[
및 ]
괄호 안에 공백이 필요합니다 .
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]
then
mkdir -p /home/mlzboy/b2c2/shared/db
fi
답변
보다 깔끔한 방법으로 쉘 논리 연산자의 바로 가기 평가를 활용하십시오. 왼쪽이 참인 경우에만 연산자의 오른쪽이 실행됩니다.
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db
답변
코드를 약간 다시 포맷해야한다고 생각합니다.
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;