shell 脚本学习之一 ------let,echo,变量
来源:互联网 发布:中超数据库 搜狐 编辑:程序博客网 时间:2024/06/06 02:49
首先看到好多以这样开头的 #!/bin/bash 这个是告诉系统 解释此脚本文件的Shell程序
# 这个是注释行,当行有效
脚本程序一般用 xx.sh 文件表示,这样一样就可以看出文件的属性,当然也可以不这样
一个脚本程序写完后,如果要执行它,则必须先赋+x 执行权限给它
例如:chmod +x xx.sh,然后用命令 ./filename 执行
以下是一些知识点:
1. echo :用于显示(不带参数,如果有多行则换行输出) 例如:echo "hello shell"
如果加上参数 -n 表示如果有多行的话,将不换行输出
点击(此处)折叠或打开
- #!/bin/bash
- # filename is while.sh
- count=0
- while(($count < 5 ))
- do
- echo -n " count=" $count
- let count=count+1
- done
2. $xx 表示引用变量:如上面的代码中,第三行定义了变量count, 第四行,第六行 $count 则引用该变量。
3. 位置变量 : $0 文件名,$1 第一个参数 $2 第二个参数
点击(此处)折叠或打开
- #!/bin/bash
- #filename is first.sh
- #have 3 parameter to first.sh
- #command is: ./first.sh 1 2 3
- # $#:传入脚本的参数个数
- # $*:显示所以的参数,并以空格隔开
- # $0:命令本身,即要执行的文件名
- # $1:第一个参数
- # $2:第二个参数
- # $3:第三个参数 后面一样 ~等等
- echo "number of vars:"$#
- echo "var of vars:"$0
- echo "first var:"$1
- echo "second var:$2
- echo "third var:$3
let 命令的替代表示形式是: ((算术表达式)) ,这样做的好处是如果表达式中含有特殊的字符,可以告示shell 进行特殊处理:例如,let ″val=a|b″。如果不括起来,Shell会把命令行let val=a|b中的“|”看成管道符,将其左右两边看成不同的命令,因而无法正确执行。
以下代码执行结果为:1 3 7 10
点击(此处)折叠或打开
- #!/bin/bash
- #filename is let.sh
- i=1
- echo "i="$i
- let i=i+2
- echo "i="$i
- let "i=i+4"
- echo "i="$i
- ((i+=3))
- echo "i="$i
点击(此处)折叠或打开
- #!/bin/bash
- # filename is second.sh
- # 函数申明和调用
- function fun1(){
- local a="hello world"
- echo "函数调用成功 "$a
- }
- echo "函数调用前"
- fun1
- echo "函数调用结束"
局部变量 是在函数中用local 声明的变量:他的作用域是在函数调用开始到函数结束。
全局变量 在shell脚本下声明的变量,他的作用域是整个shell的生存周期内。shell结束,全局变量的周期也结束。
点击(此处)折叠或打开
- #!/bin/bash
- #filename is localvar.sh
- var1="hello shell"
- function fun(){
- #定义局部变量
- local var2="hello local variable"
- echo "在函数中 使用局部变量 var2="$var2
- echo "调用全局变量1 var1="$var1
- }
- fun
- echo "在函数外调用 局部变量 var2="$var2
- echo "调用全局变量2 var1="$var1
环境变量:用于所有的用户进程,可以看成是windows下的环境变量,用export定义:如
export LOGNAME="fjsm20", 可以用env或export查看系统环境变量
位置变量:就是调用函数时候的参数,例如:./first.sh 11 22 33 如上面的第3知识点
标准变量:就是bash环境建立的一些标准环境的标量,他会自动去解析,基本都在/etc/profile中定义了有EXINIT,HOME,IFS,LOGNAME,MAIL,MAILCHECK等(引用网上资料)
特殊变量: $# 参数个数,$* 列出所有参数,$!显示后天脚本的进程Id ,$$显示当成脚本的进程id,$? 最后命令退出的状态,0 表示正常;
from: http://m.blog.chinaunix.net/uid-26827001-id-3154024.html
0 0
- shell 脚本学习之一 ------let,echo,变量
- shell 脚本学习之一 ------let,echo,变量
- 脚本学习之---->let, echo变量
- 【Shell脚本学习14】Shell echo命令
- Linux shell 脚本编程学习笔记(echo)
- shell 脚本echo和printf学习
- shell 脚本之 echo
- php学习之一(变量,作用域,echo,print)
- shell脚本变量学习小记
- 【shell脚本学习】2.linux shell变量
- 学习笔记之一shell脚本语法
- 《Linux Shell 脚本攻略》学习记录之一
- shell脚本之echo命令
- Linux Shell之echo,变量
- shell学习九--let
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- Shell脚本学习笔记(二)--变量
- linux学习之shell脚本 ------- 变量
- LinuxShell算术运算
- 连续五个班爆满超110人!淡季PHP为何如此疯狂?
- JAVA设计模式之:工厂模式(上)--工厂方法模式
- 防止Block的循环引用(技巧)
- 测试python代码在博客的显示
- shell 脚本学习之一 ------let,echo,变量
- Unity3D研究院之Machine动画脚本自动生成AnimatorController
- listview使用addfootview不显示
- Linux——获取帮助
- 优化UITableViewCell高度计算的那些事
- 从工程中删除Cocoapods
- shell函数
- Jni 学习之Java调用C++
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)