shell - 4
来源:互联网 发布:java web开源报表工具 编辑:程序博客网 时间:2024/06/02 06:01
强力推荐一个学习shell Linux 入门的好网站。
http://c.biancheng.net/cpp/view/6998.html (下面学习的例子大部分来自这个网站,转载声明)
我目前看到,编译型语言 和 解释型语言,发现挺难真正了解其区别,特意找到一些资料,清楚多了。
编译 解释:
总结得当 : http://www.cnblogs.com/zy1987/p/3784753.html?utm_source=tuicool
http://www.zhihu.com/question/21486706
http://www.zhihu.com/question/19608553
http://www.zhihu.com/question/28873481
基础、深入 : http://rednaxelafx.iteye.com/blog/492667
暂时先不纠结这种编译 解释。
开始从0开始学习shell命令,了解一门强大的语言是如何工作和它的魅力吧!
#!/bin/bashecho "Hello World !"
前面的#! 表示使用哪一个解释器来作为我们脚本的解释器,在上面的了解下应该很好理解吧,先声明一个解释器的习俗。
同理:
#!/bin/sh使用的就是sh这个解释器。
直接输入脚本你会发现碰了一鼻子墙壁。
那么如何执行以上的代码呢?
1.在当前目录中用sh即可:
2.先将脚本命令具备执行权限,然后执行当前命令:
3.指名道姓让解释器帮你执行:
这种方式特别在于动用系统的一些内嵌工具的时候,例如用Mac自带的签名工具:/usr/bin/codesign
而且可以赋予参数,具体可以自行查阅。
一段简单的带“读”的脚本:
echo "What is your name?"read PERSONecho "Hello, $PERSON"由这我们可以知道是用$来取变量。
而PERSON就是一个shell变量,shell变量和一般程序语言的限定一样,不可数字开头、关键字等。而shell比较特俗的是变量的赋值不可以有空格。
关于变量还有一个需要注意的是 { } 中括号的使用,在切包的系统里面可以见到:
# 切换工作目录 # filename=$(basename "$0") commond=`pwd`/${filename} echo "Usage: ${commond} 91 ${commond} pp ${commond} 37yueyu那究竟是什么意思呢?看一个例子:
#!/bin/bashfor skill in Ada Coffe Action Javado echo "I am good at $skillScript"done
和:
#!/bin/bashfor skill in Ada Coffe Action Javado echo "I am good at ${skill} Script"done
和分别的输出:
所以建议都加上。
shell变量也有限定词,例如不可变的只读关键字:readonly
还可以删除变量unset ,这以后就不能使用该变量了。但是不能删除只读变量。
变量类型
运行shell时,会同时存在三种变量:
1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
- shell - 4
- Linux shell编程 4 ---- shell中的循环
- Shell 学习4 - 什么时候使用Shell
- UNIX Shell 编程(4)
- shell(4) 函数.doc
- shell程序设计(4)
- Linux Shell编程4
- shell学习4
- shell学习记录---4
- shell 通讯录(4)
- 朝花夕拾-4-shell
- unix-shell-4
- shell实例编程4
- 4 shell常用命令
- Linux-shell基础-4
- (4)shell替换
- shell-4-数组
- shell学习-4
- EHCache使用
- Android 之 ViewDragHelper详解(二)
- iOS之ipad开发qq空间项目横竖屏幕适配
- 第7周项目3 - 负数把正数赶出队列
- android 设计模式——Builder
- shell - 4
- 关于android中activity的四种启动模式
- postgresql的update锁等待
- 151019总结
- CSS实现onMouseOver、onMouseOut效果和层套菜单
- 乌云 漏洞 apkbus api
- GLUT库
- C# Excel检验数据是否重复及Table检验数据是否重复
- bootstrap