shell - 4

强力推荐一个学习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/bash
echo "Hello World !"

前面的#! 表示使用哪一个解释器来作为我们脚本的解释器,在上面的了解下应该很好理解吧,先声明一个解释器的习俗。

同理:

#!/bin/sh
使用的就是sh这个解释器。


直接输入脚本你会发现碰了一鼻子墙壁。


那么如何执行以上的代码呢?


1.在当前目录中用sh即可:


2.先将脚本命令具备执行权限,然后执行当前命令:



3.指名道姓让解释器帮你执行:


这种方式特别在于动用系统的一些内嵌工具的时候,例如用Mac自带的签名工具:/usr/bin/codesign

而且可以赋予参数,具体可以自行查阅。


一段简单的带“读”的脚本: 

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
由这我们可以知道是用$来取变量。

而PERSON就是一个shell变量,shell变量和一般程序语言的限定一样,不可数字开头、关键字等。而shell比较特俗的是变量的赋值不可以有空格。


关于变量还有一个需要注意的是 {  }  中括号的使用,在切包的系统里面可以见到:

  # 切换工作目录 #
  filename=$(basename "$0")
  commond=`pwd`/${filename}
  echo "Usage:
  ${commond} 91
  ${commond} pp
  ${commond} 37yueyu
那究竟是什么意思呢?看一个例子:

#!/bin/bash
for skill in Ada Coffe Action Java
do
    echo "I am good at $skillScript"
done

和:

#!/bin/bash
for skill in Ada Coffe Action Java
do
    echo "I am good at ${skill} Script"
done


和分别的输出:


所以建议都加上。



shell变量也有限定词,例如不可变的只读关键字:readonly

还可以删除变量unset ,这以后就不能使用该变量了。但是不能删除只读变量。



变量类型


运行shell时,会同时存在三种变量:
1) 局部变量


局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量


所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量


shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值