Node, Npm, Bower, Susy가 설치되어 있는지 확인하는 스크립트를 작성했는데 실행하면 해결할 수 없다는 오류가 발생합니다.
스크립트는 다음과 같습니다.
isInstalled(){
command -v $1 >/dev/null 2>&1 || command -v $2 >/dev/null 2>&1 || { echo >&2 "I require $1 but it's not installed. Aborting."; return false;}
}
installNode() {
if [[ !isInstalled('node', 'nodejs') ]]; then
echo "Node is not installed. Installing..."
curl https://www.npmjs.org/install.sh | sh
fi
}
installBower()
{
if [[ !isInstalled('npm') ]]; then
echo "Npm is not installed. Installing..."
curl -L https://npmjs.org/install.sh | sh
else
echo "Npm is installed. Checcking Bower..."
if [[ !isInstalled('bower') ]]; then
echo "Bower is not installed. Installing..."
npm install -g bower
fi
}
installSusy()
{
if [[ !isInstalled('npm') ]]; then
echo "Npm is not installed. Installing..."
curl -L https://npmjs.org/install.sh | sh
else
echo "Npm is installed. Checcking Bower..."
if [[ !isInstalled('bower') ]]; then
echo "Susy is not installed. Installing..."
npm install susy
fi
}
오류 메시지는 다음과 같습니다.
begin.sh: 6: begin.sh: Syntax error: "(" unexpected (expecting "then")
답변1
의 함수는 bash
다른 언어의 함수와는 달리 명령처럼 호출됩니다. 대신 isInstalled('node', 'nodejs')
다음을 실행하세요.
isInstalled 'node' 'nodejs'
조건 if
은 다음과 같습니다.
if ! isInstalled 'node' 'nodejs';
then
...