저는 Bash Scripting을 처음 사용하기 때문에보다 기본적인 것들을 온라인으로 찾을 수 없습니다. 내 작업은 사용자 입력을 받아서 짝수를 2로 나눈 다음 홀수를 3으로 곱하고 1을 더하여 프로그램을 실행하는 것입니다. 고급 명령을 전혀 알지 못합니다. 더 쉬운 방법은 없지만 gedit에서 내 코드가 "명령을 찾을 수 없음"오류를주는 이유를 이해할 수 없습니다.Bash 변수 조작
내 코드 :
#!/bin/bash
#Takes in a number and computes it into hailstone series while
#displaying each number onto the screen
echo Enter number:
read n
while [$n -gt 1]
do
if [$n % 2 -eq 0]
then
let n=n/2
echo $n
else
let n=n*3+1
echo $n the number is header
fi
done
내 변수가 문과 경우 처음 건너 뛰는 계속 돌아 수표 문 "헤더입니다"하고 나는 그것을 원하지 않는다. 내가 8을 입력하면 2-eq 0에 의해 수정되어야하므로 1 이하가 될 때까지 나누어야합니다.
간격에주의하지 않아도됩니다. 명령어 이름이'['''$'''''''''''''''''''''''''''''''$' 또는 '[[''를 사용하여 간격을 덜어줍니다. 쉘 스크립팅은 공간에 많은주의가 필요합니다. –
http://shellcheck.net/은 인간이 개입 할 필요없이 구문 버그를 찾는 당신의 친구입니다. –
btw, 그것에 대해 생각하는 관점에서 :'[''** 명령 **, 언어 구문이 아닙니다. 'lsmydir' 대신에'ls mydir'을 실행하기 위해 두 단어를 사용해야 할 때와 마찬가지로, 쉘이'[foo'라는 다른 명령을 찾지 못하게하려면 [foo' 대신 [foo'를 실행해야합니다. 'test "는 다른 곳에서는 구문이 아닌 것처럼 보이는 것처럼'["$ n "-gt 1]'대신에'test"$ n "-gt 1"명령을 사용하면 혼란을 덜 일으킬 수 있습니다. –