2017-10-28 18 views
0
내가 파일에이 의사 코드 추가하려고 해요

:배쉬 - 어떻게 단어의 경우에 다음 문

if [ `expr $MOD % 5` -eq 0 ]; then. 

내가 같이 쉘에 그것을했다 :

echo if [ `expr $MOD % 5` -eq 0 ]; then 

그러나 그것은 나를를 제공을 예기치 않은 토큰 'then'근처에 구문 오류가 있습니다. 내가 어디로 잘못 가고 있는지 알 수 없다.

+2

Er. 'echo'를 제거 하시겠습니까? – melpomene

+0

echo 줄에서 지워서 무엇이 출력되는지 확인하십시오. –

+1

일반적으로 역 인용 부호 대신'$ (...)'을 사용하고'expr' 명령 대신'$ (($ MOD % 5))'를 사용하십시오. [echo (만약 $ (($ MOD % 5)) -eq 0]; 다음 '. – chepner

답변

2

사용 따옴표 : 나는이 권리를 읽고 있습니다 경우

$ echo 'if [ `expr $MOD % 5` -eq 0 ]; then' 
if [ `expr $MOD % 5` -eq 0 ]; then 
0

, 당신은 파일이 실제 텍스트를 추가하려고?

if [ `expr $MOD % 5` -eq 0 ]; then 

그런 다음 명령 구조가 문제입니다. 이것을 사용했습니다 :

실제로는 쉘과 관련하여 세미콜론 때문에 두 개의 명령입니다. 그래서 동일하다 : then 이후

echo if [ `expr $MOD % 5` -eq 0 ] 
then 

일반적으로 유효한 명령하지 않고,이 조건 쉘의 맥락 외부 (예를 if을 위해), 쉘은 그것으로 무엇을 해야할지하지 않습니다 .

당신이해야 할 일은 전체를 문자열로 인용하고 이 울리는 것입니다. 작은 따옴표 (')보다는 큰 따옴표 (")를 사용하여

echo 'if [ `expr $MOD % 5` -eq 0 ]; then' 

중요하다. 큰 따옴표를 사용하면 백틱 (expr $MOD % 5)의 비트가있는 그대로 파일로 전달되는 대신 평가됩니다.