Ubuntu에서 매우 간단한 스크립트를 작성하여 파일 이름이나 디렉토리를 전달하고 파일 일 때 특정 작업을 수행 할 수 있으며 디렉토리 일 때 다른 작업을 수행 할 수 있습니다. 내가 겪고있는 문제는 디렉토리 이름 또는 파일도 공백이나 다른 이스케이프 가능한 문자가 이름에있을 때입니다.
아래에 기본 코드가 나와 있으며 몇 가지 테스트가 있습니다.
#!/bin/bash
PASSED=$1
if [ -d "${PASSED}" ] ; then
echo "$PASSED is a directory";
else
if [ -f "${PASSED}" ]; then
echo "${PASSED} is a file";
else
echo "${PASSED} is not valid";
exit 1
fi
fi
출력은 다음과 같습니다.
andy@server~ $ ./scripts/testmove.sh /home/andy/
/home/andy/ is a directory
andy@server~ $ ./scripts/testmove.sh /home/andy/blah.txt
/home/andy/blah.txt is a file
andy@server~ $ ./scripts/testmove.sh /home/andy/blah\ with\ a\ space.txt
/home/andy/blah with a space.txt is not valid
andy@server~ $ ./scripts/testmove.sh /home/andy\ with\ a\ space/
/home/andy with a space/ is not valid
이러한 경로는 모두 유효하며 존재합니다.
if
-else
배쉬의 구조도 지원합니다elif
. 참고로