文档章节

深入学习Bash

pearma
 pearma
发布于 2017/04/04 21:33
字数 339
阅读 16
收藏 1

还是采用我最习惯的案例学习法,一步步成为bash高手。

  • 案例1,学习要点包括:
    • 如何构建一个函数
    • 如何声明一个变量
    • 如何进行条件判断
#!/usr/bin/env bash

#函数声明
realpath () {
(
# $1是传给函数的参数
  TARGET_FILE="$1"
  FIX_CYGPATH="$2"

# dirname,求的是目录名称
   cd "$(dirname "$TARGET_FILE")"
# basename 求的是执行命令的名称,去掉前面的目录名
  TARGET_FILE=$(basename "$TARGET_FILE")
)
}

#声明一个变量, -i=整型变量
declare -i int_decimal=15
declare decimal=15
declare -i int_octal=017
declare  octal=017

if [ "$decimal" -eq "$octal" ]
then
  echo "$decimal equals $octal"
else
  echo "$decimal is not equal to $octal"       # 此行被执行
fi      #  [ single brackets ] , 不会对变量进行完全的解析,所以shell认为15和017是不相等的。

if [ "$int_decimal" -eq "$int_octal" ]
then
  echo "$int_decimal equals $int_octal"   #此行被执行
else
  echo "$int_decimal is not equal to $int_octal"       
fi      # 当明确指明变量是整型时,8进制和10进制数,在被判断之前,就处理好了,比较时自然相等。


if [[ "$decimal" -eq "$octal" ]]
then
  echo "$decimal equals $octal"                # 此行被执行
else
  echo "$decimal is not equal to $octal"
fi      # [[ double brackets ]] 更加智能一些,解析得比较彻底

© 著作权归作者所有

上一篇: Sbt 使用技巧
pearma
粉丝 3
博文 67
码字总数 26042
作品 0
徐汇
高级程序员
私信 提问
linux从小白到linux资深专家之路

linux从小白到linux资深专家之路 为什么学Linux,理由如下: Linux是免费; Linux是开源的,你可以修改源代码; Linux是开放的,有广泛的社区; 学习Linux可以更好的掌握计算机技术; Linux是...

lxm111111
2016/07/16
0
0
java程序员从入门到精通

前言 java路漫漫,这是一份针对java服务端开发入门与进阶指南。 建议: 尽量用 google 查找技术资料。 有问题在 stackoverflow 找找,大部分都已经有人回答。 多看官方的技术文档。 ibm deve...

rock912
2016/07/04
129
4
服务端工程师入门与进阶 Java 版

前言 欢迎加入我们。这是一份针对实习生/毕业生的服务端开发入门与进阶指南。遇到问题及时问你的 mentor 或者直接问我。 建议: 尽量用google查找技术资料。 有问题在stackoverflow找找,大部...

天天顺利
2015/10/14
123
0
Linux运维人员需要掌握一门编程语言吗?

最近经常有同行的朋友或者Linux初学者问我:运维人员是否需要学一门语言,那么该学哪种语言呢? 对于这个问题,我分两个方面回答: 首选,在大数据、云计算发展迅猛的今天,系统运维人员如果...

南非蚂蚁
2016/03/06
0
0
Linux操作系统之Shell程序设计

Shell是种命令解释程序,也可以看作是一种命令语言的解释器。 用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才能够被Shell理解并执行。Shell所使用的这种命令语言称...

Linux就该这么学
06/20
41
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部