Shell 스 크 립 트 주의

 1. 변수 정의 등호 양쪽 에 빈 칸 이 있 으 면 안 됩 니 다.
#!/bin/bash myvar = 3\# 정확 한 myvar = 3; #등호 변 에 빈 칸 이 많아 진 것 은 잘못된 것 이다!판이 하 죠?
1.1 아니면 빈 칸, 이번 에는 없 으 면 안 됩 니 다

#!/bin/sh
myVar="OFF"
if [   $myVar = 'OFF'    ];then
#这里[]中括起来的内容两端必须有空格,if [$myVar = 'OFF']是不能正常工作的。也很迥异吧
#注意 if 和 [ 之间也是有空格的!
        echo "works"
else
        echo "Not works"
fi

2. 따옴표 와 작은 따옴표
testvar = 5 myvar = 'Haha $test'\# shell 은 $test myvar 2 = 'Haha $test'\# shell 은 $test echo $myvar 2\# 출력: Haha $test Haha 5 를 설명 합 니 다.
작은 따옴표 에 있 는 문자 에 변수 가 있 으 면 셸 은 설명 을 시도 합 니 다. 작은 따옴표 에 서 는 그렇지 않 습 니 다.따라서 문자열 에 설명 할 변수 가 없 으 면 작은 따옴표 를 사용 하 는 것 이 빠 를 것 이 라 고 합 니 다.
이것 은 크게 다 르 지 않 고 다른 언어 도 이런 약속 을 많이 한다.
3. 이상 한 산술 연산
셸 에서 산술 연산 은 $(와) 를 사용 하여 산술 연산 을 묶 어야 합 니 다.
$($myvar + 12)\# 이 건 아주 판이 합 니 다.
4. case 구문

case "${x##*.}" in
      gz)
            gzunpack ${SROOT}/${x}
            ;;
      bz2)
            bz2unpack ${SROOT}/${x}
            ;;
      *)
            echo "Archive format not recognized."
            exit
            ;;
esac           #这个比较迥异 "esac"、";;"、"bz2)"

5. 함수 중의 변수 역할 범위

#!/usr/bin/env bash
myvar="hello"
myfunc() {
     myvar="one two three"
     for x in $myvar
     do
         echo $x
     done
}
myfunc
echo $myvar $x
输出:
one
two
three
one two three three  #函数myfunc中的变量,在函数之外仍然存在。
#你可以通过关键字 local 限制变量只在函数中有效果 #这个比较迥异

더 판이 한 것 이 있 습 니까?
참고 문헌:
http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-1/index.html
http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/index.html
http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-3/index.html
http://www.linuxsir.org/main/?q=node/135
BASH Programming − Introduction HOW−TO

좋은 웹페이지 즐겨찾기