检查shell脚本语法 Linux shell编程基础,一看就能入门

09/11 11:34:48 来源网站:辅助卡盟网

一个例子:

#!/bin/bash 
echo "print $"
echo "\$0 = $0"
echo "\$1 = $1"
echo "\$2 = $2"
echo "\$# = $#"
echo "\$@ = $@"
echo "\$* = $*"
echo "\$$ = $$"
echo "\$? = $?"

执行./hello.sh 1 2 3 4 5 的结果:

print $
# 程序名
$0 = ./hello.sh
# 第一个参数
$1 = 1
# 第二个参数
$2 = 2
# 一共有 5 个参数
$# = 5
# 打印出所有参数
$@ = 1 2 3 4 5
# 打印出所有参数
$* = 1 2 3 4 5
# 进程 ID
$$ = 9450
# 之前没有执行其他命令或者函数

shell脚本正则表达式语法_检查shell脚本语法_shell脚本语法typeset

3. 环境变量

环境变量默认就存在,常用的有下面这几个:

1. HOME:用户主目录

2. PATH:系统环境变量 PATH

3. TERM:当前终端

4. UID:当前用户 ID

5. PWD:当前工作目录,绝对路径

还是看例子:

#!/bin/bash
echo "print env"
echo $HOME
echo $PATH
echo $TERM
echo $PWD
echo $UID

运行结果:

print env
# 当前主目录
/home/orange
# PATH 环境变量
/home/orange/anaconda2/bin:后面还有很多
# 当前终端
xterm-256color
# 当前目录
/home/orange
# 用户 ID
1000

Shell 变量就介绍到这里,下面来介绍 Shell 的变量运算。

Shell 运算

我们经常需要在 Shell 脚本中计算辅助论坛,掌握基本的运算方法很有必要,下面就是 4 种比较常见的运算方法,功能都是将 m + 1:

1. m=$[ m + 1 ]

2. m=expr $m + 1 # 用 “ 字符包起来

3. let m=m+1

4. m=$(( m + 1 ))

来看一个实际的例子:

#!/bin/bash 
m=1
m=$[ m + 1 ]
echo $m
m=`expr $m + 1`
echo $m
# 注意:+ 号左右不要加空格
let m=m+1
echo $m
m=$(( m + 1 ))
echo $m

运行结果:

2
3
4
5

了解了基本的运算方法,下面进一步来学习 Shell 的语句。

Shell 语句

Shell 语句跟高级语言有些类似,也包括分支,跳转,循环,下面就带着大家一个一个突破。

1. if 语句

这个跟高级语言的 if - else - if 类似,只是格式有些不同而已,也来看个例子吧:

#!/bin/bash 
read VAR

shell脚本正则表达式语法_检查shell脚本语法_shell脚本语法typeset

2. case 语句

case 语句有些复杂,要注意格式:

#!/bin/bash 
read NAME
# 格式有点复杂,一定要注意
case $NAME in
    "Linux")
        echo "Linux"
        ;;
    "cdeveloper")
        echo "cdeveloper"
        ;;
    *)
        echo "other"
        ;;
esac

运行结果:

# 输入 Linux
Linux
Linux
# 输入 cdeveloper
cdeveloper
cdeveloper
# 输入其他的字符串
hello
other

3. for 循环

这是一个 for 循环基本使用例子,挺简单的,有点类似 Python:

#!/bin/bash 
# 普通 for 循环
for ((i = 1; i <= 3; i++))
do
    echo $i
done
# VAR 依次代表每个元素 
for VAR in 1 2 3
do
    echo $VAR
done

SQL Error: select * from ***_ecms_game where title like '%检查shell脚本语法 Linux shell编程基础,一看就能入门%' or INSTR('检查shell脚本语法 Linux shell编程基础,一看就能入门',title)>0 order by newstime desc limit 10

游戏推荐

更多>
    SQL Error: select * from ***_ecms_game where titlepic<>'' order by newstime desc limit 6