Linux shell编程基础(一)

来源:互联网 发布:中文域名有必要注册吗 编辑:程序博客网 时间:2024/06/05 10:15

简介:shell作为一门编程语言,自然也具备一般编程语言的属性。如数据类型,函数,程序控制流程等


1.数据类型

谈到数据类型,不得不先谈谈语言的类型。语言可分为4类:静态类型语言动态类型语言强类型语言弱类型语言
静态类型语言:在编译期间就确定数据类型的语言。如C,Java等
动态类型语言:运行期间才确定数据类型的语言。如Python等
强类型语言:强制类型定义的语言,如果给定一个变量就必须明确的指出该变量的类型。
弱类型语言:与强类型相反,如字符串'12'整数3进行连接得到字符串'123',然后把它看成整数123,整个过程不需要任何显示的转换。

而Shell语言是一门动态类型、弱类型的语言。因此,Shell没有显示的数据类型。

一个实例:
#! /bin/sh
a=2334
let "a += 1"
echo "a = $a"
echo

b=${a/23/BB}

echo "b = $b"
declare -i b
echo "b = $b"

let "b += 1"
echo "b = $b"
echo 

c=BB34

echo "c = $c"
d=${c/BB/23}

echo "d = $d"
let "d += 1"
echo "d = $d"
echo

e=""
echo "e = $e"
let "e += 1"
echo "e = $e"
echo

echo "f = $f"
let "f += 1"
echo "f = $f"
echo 

exit 0

保存执行:sh var.sh
出现错误:
var.sh: 4: let: not found
a = 2334

var.sh: 8: Bad substitution

查看sh的指向:
# ll sh
/bin/sh --> dash*
而dash并不支持let指令,使用bash var.sh执行,结果如下:
a = 2335


b = BB35
b = BB35
b = 1


c = BB34
d = 2334
d = 2335


e = 
e = 1


f = 
f = 1

由此看来变量似乎被作为各种类型进行处理。其实,在shell中的一切变量都是字符串类型的

0 0
原创粉丝点击