shell基本概念
- shell既是一种解释型编程语言,也是一个这种编程语言的解释器的名字
- shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译型语言,编译器把整个工程编译成可执行文件才能执行
- 在没有续行符(\回车)的情况下,shell脚本的一条语句以”回车”为结束
- 任何一个shell脚本程序都必须在开头用#!标识使用的shell程序,如果用的是bash,那就是#!/bin/sh
- shell脚本一行中的#之后的部分为注释
- 刚刚写完的一个shell script程序通常是没有执行权限的,需要手动$chmod +x filename.sh来添加可执行权限
shell语言本身并不包含linux内置的命令,那些命令本质上都是一个可以在shell环境中执行的程序,只是在shell环境中执行shell脚本可以调用这些程序而已。
$ 表示取结果。和变量名一起使用表示取变量的值。表示取结果。和变量名一起使用表示取变量的值。
expr用于整数值计算,注意用于计算的每一项需要用空格隔开。
let表示数学运算。
(())与let类似。
$[]中将括号内的表达式作为数学运算先计算出来的结果在输出。
#!/bin/sh
sum=20
echo "hello ,we have ${sum}apples"
echo "Hello , $USER,\nBinary,num is $sum"
#!/bin/sh
weight=1
test02=2
seconds=0
echo -n "Enter a number of seconds>"
read seconds
hours=$((seconds/3600))
seconds=$((seconds%3600))
minutes=$((seconds/60))
seconds=$((seconds%60))
weight=`expr $weight + 1`
let "test02+=22"
echo "$hours hour(s) $minutes minute(s) and $seconds second(s)"
echo $weight
echo $test02
执行脚本的命令是sh file.sh或者bash file.sh。
bc和awk用于运算
浮点数运算可以用bc或者awk等程序。
bc是一个交互计算的shell。
# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
2+2
4
3.6*3.6
12.9
3.6^2
12.9
awk计算:
#!/bin/sh
var=1
var=`echo "$var 5"|awk '{printf("%g",$1+$2)}'`
echo $var