나는 클래스 이름을 인수로 사용하는 bash 스크립트를 .sh에 작성했습니다. 이 스크립트를 실행하면 class
스크립트와 동일한 공간에 디렉터리가 생성됩니다.
그런 다음 디렉토리 내부의 매개변수로부터 받은 클래스 이름과 동일한 클래스 이름을 가진 PHP 파일을 생성합니다 class
. 그러나 동일한 파일이 이미 존재하는 경우 프로그램을 종료하십시오.
문제: Microsoft Windows에서 작동하지만 Gnu/Linux에서도 실행하려면 필요합니다.
이 내 꺼야.sh
#!/bin/bash
CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p $CURRENT_PATH/class
cd $CURRENT_PATH/class
if [ -f "[email protected]" ];
then
exit 1
else
echo "class $@
{
}" > [email protected]
fi
답변1
내가 보는 유일한 문제는 따옴표가 누락되었다는 것입니다. 따라서 디렉터리/파일 이름에 공백이 있으면 오류가 발생합니다.
#!/bin/bash
current_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p "$current_path/class"
cd "$current_path/class"
if [ -f "$1.php" ];
then
exit 1
else
echo "class $1
{
}" > "$1.php"
fi
사용법에 대한 질문도 있습니다 "$@"
. 원하는 것입니까? 그런 뜻 이었습니까 "$*"
?
그리고 변수 이름은 소문자여야 합니다. 이것이 어떻게 문제를 일으킬 수 있는지 이해하지 못하지만, 버그가 발생하기를 기다리고 있습니다.
실행하면 shellcheck
대부분의 오류가 발견됩니다.