迥异的Linux Shell Script

简介:


摘要:如果你已经习惯编写Shell脚本,那么一切都显得很自然了。但像我这样,之前已经习惯了C语言(风格)的编程,就觉得Shell并不是那么友好。这里将记录一些Shell和"C风格"迥异的地方,以供参考。本文测试环境:GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)。文章中很多实例直接来在参考文件[1]、[2]。


1、变量定义等号两边不能有空格

#!/bin/bash
myvar=3 #正确
myvar = 3; #等号边多了空格,是错误的!很迥异

1.1、还是空格,这次是不能没有


#!/bin/sh
myVar="OFF"
if [   $myVar = 'OFF'    ];then  
#这里[]中括起来的内容两端必须有空格,if [$myVar = 'OFF']是不能正常工作的。也很迥异吧
#注意 if 和 [ 之间也是有空格的!
        echo "works"
else
        echo "Not works"
fi

2、双引号和单引号

testvar=5
myvar='Haha$test' #shell会解释$test
myvar2="Haha$test" #shell会解释$test
echo $myvar $myvar2 #输出:Haha$test Haha5

双引号中的字符如果有变量,shell会尝试解释它,单引号中不会。所以,如果字符串中没有要解释的变量尽量使用单引号,据说速度会快些。

这个到不算很迥异,还有很多其他的语言也都有这样的约定。

3、奇怪的算术运算

shell中算术运算需要使用$((和))将算术运算括起来

$(( $myvar + 12 )) #这个非常迥异

4、case语句


case "${x##*.}" in
      gz)
            gzunpack ${SROOT}/${x}
            ;;
      bz2)
            bz2unpack ${SROOT}/${x}
            ;;
      *)
            echo "Archive format not recognized."
            exit
            ;;
esac           #这个比较迥异 "esac"、";;"、"bz2)"

5、函数中的变量作用范围


#!/usr/bin/env bash 
myvar="hello" 
myfunc() {
     myvar="one two three"
     for x in $myvar
     do
         echo $x
     done
} 
myfunc 
echo $myvar $x
输出:
one
two
three
one two three three  #函数myfunc中的变量,在函数之外仍然存在。
#你可以通过关键字 local 限制变量只在函数中有效果 #这个比较迥异

还有更迥异的吗?

目录
相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
20天前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
49 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
163 2
|
24天前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
17 0
|
2月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
3月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本检测磁盘使用率?
在Linux中,如何使用shell脚本检测磁盘使用率?
|
3月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
3月前
|
缓存 Shell Linux
在Linux中,bash shell 中的 hash 命令有什么作用?
在Linux中,bash shell 中的 hash 命令有什么作用?