linux基础--Bash编程基础

简介:

bash测试是否有语法测试

bash -n file.sh

以调试模式执行脚本

bash -x file.sh 


shell中定义全局变量

export DATE=`date +%Y%M%D`


shell中交互式输入

read

 -t:设置超时时间

 -p:指定提示信息


shell中进行算术运算符

A=3

B=4

如果使用C=$A+$B表示字符串相加,结果为3+4

1、let 算术运算表达式

let C=$A+$B

2、$[算术运算表达式]

C=$[$C+$B]也可写作

let C+=$B

3、$((算术运算符))

C=$(($A+$B))

4、expr 算术运算符,表达式之间要有空格,并使用命令引用

C=`expr $A + $B`


shell中条件测试

1、整数测试(双目操作,比较两个数字,一般是变量和数字或者变量和变量)

表达式[ $A -eq $B ] (命令测试法,注意空格)

 [[ $A -eq $B ]] (关键字测试法)

 test $A -eq $B  (test命令测试法) 

-gt大于

-le小于等于

-ne不等于

-eq等于

-ge大于等于

-lt小于

注:在测试时,除了使用上述判断式以外,都无需使用[]

如:if grep "^$USERNAME\>" /etc/passwd ;then  可以直接判断,无需使用[]


2、文件测试

-e FILE:测试文件是否存在

-f FILE:测试文件是否为普通文件

-d FILE:测试文件是否为目录

-r FILE:测试当前用户对指定文件是否用读取权限

-w FILE:测试当前用户对指定文件是否用写入权限

-x FILE:测试当前用户对指定文件是否用执行权限

如:if [ -f /etc/inittab ] (注意空格)


3、字符测试

==:测试是否相等,等为真,不等为假(==两边要注意有空格)

!=:测试是否不等,不等为真,等为假

>:测试是否大于,大于为真,小于为假

<:测试是否小于,小于为真,大于为假

-n string:测试指定字符串是否为空,空为真,不空为假

-s string:测试指定字符串是否不为空,不空为真,空为假

1
2
3
4
5
[root@liang-study scripts] # A=hello
[root@liang-study scripts] # B=hi
[root@liang-study scripts] # [ $A == $B ]
[root@liang-study scripts] # echo $?
1


exit #  定义退出状态码


bash变量类型

本地变量(局部变量)【作用域为当前Shell】

环境变量【作用域为当前shell和子shell】

位置变量

$1 $2 $3

shift n(踢除前n个位置变量)

特殊变量

$?:上一条命令执行状态

$#:参数的个数

$*:参数列表

$@:参数列表



本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1884528
相关文章
|
6月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
305 13
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
8月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
9月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
174 26
|
9月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
本文详细介绍了如何在Linux中通过在业务线程中注册和处理信号。我们讨论了信号的基本概念,并通过完整的代码示例展示了在业务线程中注册和处理信号的方法。通过正确地使用信号处理机制,可以提高程序的健壮性和响应能力。希望本文能帮助您更好地理解和应用Linux信号处理,提高开发效率和代码质量。
183 17
|
11月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
501 13
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
668 6
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决