bash 함수를 실행하려고하지만 구문 오류가 계속 발생합니다 : "("예기치 않은. 대괄호, 괄호 등을 제거하려고 시도했지만 아무것도 작동하지 않는 것 같습니다.
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
bash 함수를 실행하려고하지만 구문 오류가 계속 발생합니다 : "("예기치 않은. 대괄호, 괄호 등을 제거하려고 시도했지만 아무것도 작동하지 않는 것 같습니다.
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
답변:
로 스크립트를 실행하는 경우 sh hello.sh해석 쉘은 shebang 행에 언급 된 것이 아니라 /bin/sh사용됩니다. 데비안과 우분투의 경우 기본값은입니다 dash.
로 스크립트를 올바르게 실행 bash하려면 다음 중 하나를 사용하십시오.
/bin/bash hello.sh
또는
chmod +x hello.sh
./hello.sh
또는 당신은 또한 설정할 수 bash는 AS /bin/sh.
dpkg-reconfigure dash
먼저:
구문 오류는 () 때문입니다. 다음과 같이 파일에서 ()를 제거하십시오.
#!/bin/bash
function hello {
echo "Hello world"
}
또는 다음 명령을 실행하여 파일을 편집 할 수 있습니다.
sed -i 's/() //g' hello.sh
이제 원하는 결과로 파일을 실행할 수 있습니다.
대안 적으로 :
2, 3, 4 행을 ~/.bashrc파일에 추가 할 수 있습니다 .
function hello () {
echo "Hello world"
}
기억 하지 않는 사용 sudo하여 편집 할 ~/.bashrc파일을!
파일에 행을 추가 한 후 다음 명령을 실행하여 bash를 다시 시작하거나 .bashrc 파일을 "소스"하십시오.
. ~/.bashrc
이제 comand를 실행할 수 hello있고 "Hello world"가 터미널에 인쇄되어야합니다.
또한:
대신 파일을 편집하여 다음과 같이 말할 수 있습니다.
#!/bin/bash
echo "Hello world"
파일 이름을 지정하고 파일 hello을에 저장하십시오 /usr/local/bin.
이 모든 작업을 수행 한 후 다음 명령을 실행하여 파일을 실행 가능하게 만드십시오.
sudo chmod +x /usr/local/bin/hello
이제 comand를 실행할 수 hello있고 "Hello world"가 터미널에 인쇄되어야합니다.
드디어:
세 번째 옵션은 ~/.bashrc파일에 다음 줄을 추가하는 것입니다 .
alias hello='echo "Hello world"'
그런 다음 다음 명령을 사용하여 .bashrc 파일을 소싱하십시오.
. ~/.bashrc