기초적인 쉘프로그래밍 ^^;

ekacl의 이미지

1-9까지 숫자 두개를 입력받고 첫번째값이 두번째값보다 작거나 같을때
두 숫자 각각의 구구단을 출력하는 프로그램을 짤려고 하는데요
도저히 감이 안와요 어케하는건징...아 어렵당...ㅠㅠ
이런식으로 하면되는건가요??

#!/bin/bash
echo 99 out program
read a b
echo 1~9 two number input
echo "one = $a two = $b"
if [ -f a -le b ]
then
echo "a * 1 = $((a*1))  b * 1 = $((b*1))"
echo "a * 2 = $((a*2))  b * 2 = $((b*2))"
echo "a * 3 = $((a*3))  b * 3 = $((b*3))"
echo "a * 4 = $((a*4))  b * 4 = $((b*4))"
echo "a * 5 = $((a*5))  b * 5 = $((b*5))"
echo "a * 6 = $((a*6))  b * 6 = $((b*6))"
echo "a * 7 = $((a*7))  b * 7 = $((b*7))"
echo "a * 8 = $((a*8))  b * 8 = $((b*8))"
echo "a * 9 = $((a*9))  b * 9 = $((b*9))"
fi
cinsk의 이미지

#!/bin/sh

PATH=/bin:/usr/bin:/usr/local/bin

function multbl() {
    for f in 1 2 3 4 5 6 7 8 9; do
        echo "$1 x $f = `expr $1 \* $f`";
    done
}

if [ "$#" -ne 2 ]; then
    echo -n "Enter two digits: "
    read lhs rhs
else
    lhs="$1"
    rhs="$2"
fi

if [ "$lhs" -le "$rhs" ]; then
    multbl "$lhs"
    multbl "$rhs"
fi
ekacl의 이미지

실행하니깐

Quote:

: command not found
: command not found
'ash: test.sh: line 5: syntax error near unexpected token `{
'ash: test.sh: line 5: `function multbl()

이런 에러가 뜨네요 그리고 괜찮으시면 주석좀 부탁할께요
^^; 아유...죄송해라
markboy의 이미지

#/bin/sh

#/bin/bash

로 바꾸세요.

/bin/sh 가 bash 가 아닌 다른 쉘에 링크가 걸려있는 것 같습니다.

ekacl의 이미지

if [ "$#" -ne 2 ]; then
	echo -n "Enter the digit:"
	read a b
else
	a="$1"
	b="$2"

이부분이 이상한거 아닌가요??
아 그리고 함수에서 $1을 사용하잖아요 $2의 값은 어떻게 되는지요??
markboy의 이미지

function multble 안에서 쓰이는 $1 은 shell script의 파라미터가 아닌 mutable 함수의 첫번째 파라미터를 의미합니다.