返回顶部
首页 > 资讯 > 操作系统 >Linux Bash编程语法都有哪些
  • 538
分享到

Linux Bash编程语法都有哪些

2023-06-16 03:06:51 538人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关linux Bash编程语法都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西&am

这期内容当中小编将会给大家带来有关linux Bash编程语法都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西——bash编程,即shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于windows中的批处理文件。

bash编程之变量

bash变量类别

本地变量:只对当前shell进程有效的变量,对其它shell进程无效,包当前shell进程的子进程

VAR_NAME=VALUE

变量赋值:向变量的存储空间保存数据

变量引用:${VAR_NAME} 

"":弱引用,里面的变量会被替换  '':强引用,里面的所有字符都是字面量,直接输出

环境变量:对当前shell进程及其子shell有效,对其它的shell进程无效         

定义:export VAR_NAME=VALUE  导出:export VAR_NAME  撤消变量:unset VAR_NAME  只读变量:readonly VAR_NAME

局部变量: 对shell脚本中某代码片断有效,通常用于函数本地

local VAR_NAME=VALUE

位置变量:用来接受变量指定位置的参数

$1,$2...,${10}

特殊变量:shell对一些参数做特殊处理,这些参数只能被引用而不能被赋值

$#  传递到脚本的参数个数  $*  显示所有向脚本传递的参数                  #与位置变量不同,此选项参数可超过9个  $$  获取当前shell的进程号  $!  执行上一个指令的进程号  $?  获取执行的上一个指令的返回值              #0为执行成功,非零为执行失败  $-  显示shell使用的当前选项,与set命令功能相同  $@  与$*相同,但是使用时加引号,并在引号中返回每个参数

查看变量:

set:查看当前shell进程中的所有变量  export, printenv, env:查看当前shell进程中的所有环境变量

变量命名:

  •  1、不能使用程序中的关键字(保留字)

  •  2、只能使用数字、字母和下划线,且不能以数字开头

  •  3、要见名知义

变量类型:

数值型:精确数值(整数),近似数值(浮点型)  字符型:char,string  布尔型:true, false

类型转换:

显式转换  隐式转换

bash的配置文件:

功能:设定本地变量,定义命令别名

  •  profile类:为交互式登录的用户提供配置 

全局:/etc/profile、/etc/profile.d}: 返回的结果是var/log/messages  ${file##*/}: 返回messages
  •  ${variable%Word*}: 在variable中存储字串上,自右而左,查找第一次出现word,删除此word处至字串尾部的所有内容;

  •  ${variable%%world*}:在variable中存储字串上,自右而左,查找最后一次出现word,删除此word处至字串尾部的所有内容; 

file='/var/log/messages'  ${file%*/}: 返回的结果是/var/log  ${file%%*/}: 返回结果为空  例:url="Http://www.redhat.com:80"  取端口:${url##*:}  取协议:${url%%:*}

查找替换:

${variable/pattern/substi}: 替换第一次出现

#userinfo=`tail -1 /etc/passwd  #echo $userinfo  scholar:x:500:500:scholar:/home/scholar:/bin/bash  #echo ${userinfo/scholar/redhat}  redhat:x:500:500:scholar:/home/scholar:/bin/bash

${variable//pattern/substi}:替换所有的出现

#echo ${userinfo//scholar/redhat}  redhat:x:500:500:redhat:/home/redhat:/bin/bash

${variable/#pattern/substi}:替换行首被pattern匹配到的内容

#echo ${userinfo/#scholar/redhat}  redhat:x:500:500:scholar:/home/scholar:/bin/bash

${variable/%pattern/substi}:替换行尾被pattern匹配到的内容

#echo ${userinfo/%bash/redhat}  scholar:x:500:500:scholar:/home/scholar:/bin/redhat

pattern可以使用globbing中的元字符:* ?

查找删除:

${variable/pattern}:删除第一次出现

#echo ${userinfo/scholar}  :x:500:500:scholar:/home/scholar:/bin/bash

${variable//pattern}:删除所有的出现

#echo ${userinfo//scholar}  :x:500:500::/home/:/bin/bash

${variable/#pattern}:删除行首被pattern匹配到的内容

#echo ${userinfo/#scholar}  :x:500:500:scholar:/home/scholar:/bin/bash

${variable/%pattern}:删除行尾被pattern匹配到的内容

#echo ${userinfo/%bash}  scholar:x:500:500:scholar:/home/scholar:/bin/

大小写转换:

小–>大:${variable^^}

#echo ${userinfo^^}  SCHOLAR:X:500:500:SCHOLAR:/HOME/SCHOLAR:/BIN/BASH

大–>小:${variable,,}

#name="SCHOLAR"  #echo ${name,,}  scholar

变量赋值操作:

${variable:-string}:variable为空或未设定,那么返回string,否则,返回variable变量的值;

${variable:=string}:variable为空或未设定,则返回string,且将string赋值给变量variable,否则,返回variable的值;

为脚本使用配置文件,并确保某变量有可用值的方式

variable=${variable:-default vaule}

写个脚本,配置etc目录;

(1) 在配置文件中定义变量;

(2) 在脚本中source配置文件;

#!/bin/bash  [ -f /etc/sysconfig/network ] && source /etc/network/network  [-z "$HOSTAME" -o "$HOSTNAME" = '(none)' ] || HOSTNAME ='localhost'  /bin/hostname $HOSTNAME  /bin/hostname

mktemp命令:

mktemp [OPTioNS] filename.XXX

-d: 创建临时目录  --tmpdir=/path/to/somewhere :指定临时文件所在的目录  mktemp /tmp/tmp.XXX                    #XXX生成相同数量随机字符  mktemp --tmpdir=/var/tmp tmp.XXX       #指定目录创建临时文件  mktemp --tmpdir=/var/tmp -d tmp.XXX    #指定目录创建临时目录

install命令:

install [OPTIONS] SOURCE DEST

install [OPTIONS] SOURCE… DIR

install [OPTIONS] -d DIR …

增强型的复制命令:  -o OWNER  -g GROUP  -m MODE  -d : 创建目录  install /etc/fstab /tmp                 #复制文件到指定目录  install --mode=644 /etc/fstab /tmp/     #复制时指定权限  install --owner=scholar /etc/fstab /tmp #复制时指定属主  install --group=scholar /etc/fstab /tmp #复制时指定属组  install -d /tmp/install                 #创建目录

上述就是小编为大家分享的Linux Bash编程语法都有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux Bash编程语法都有哪些

本文链接: https://lsjlt.com/news/282218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux Bash编程语法都有哪些
    这期内容当中小编将会给大家带来有关Linux Bash编程语法都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西&am...
    99+
    2023-06-16
  • Bash的语法和工具都有哪些
    本篇文章为大家展示了Bash的语法和工具都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Shell 是操作系统的命令解释器,其中 Bash 是我最喜欢的。每当用户或者系统管理员将命令...
    99+
    2023-06-05
  • ASP和bash都是编程语言吗?
    ASP和Bash都是编程语言吗? ASP和Bash都是编程语言,但是它们有不同的用途和特点。ASP(Active Server Pages)是一种用于创建动态网站的服务器端脚本语言,而Bash则是一种在Linux和Unix系统上使用的命令行...
    99+
    2023-10-16
    bash 关键字 自然语言处理
  • Bash编程中的常用算法有哪些?
    Bash编程是一种常见的脚本编程语言,主要用于在Linux和Unix系统中编写脚本程序。在Bash编程中,有许多常用的算法可以帮助程序员更好地完成任务。本文将介绍一些常见的算法,并提供一些示例代码。 一、字符串处理算法 字符串处理是Bash...
    99+
    2023-08-07
    编程算法 自然语言处理 bash
  • Linux中Shell编程bash的内部命令有哪些
    这篇文章主要为大家展示了“Linux中Shell编程bash的内部命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中Shell编程bash的内部命令有哪些”这篇文章吧。bash...
    99+
    2023-06-17
  • sql语句都有哪些
    这篇文章将为大家详细讲解有关sql语句都有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Windows中运行cmd的Sqlplus中设置每行显示的数据长...
    99+
    2024-04-02
  • go语言都有哪些
    go语言都有高效的并发编程、快速编译、内存管理、强大的标准库、静态类型和类型推断、跨平台支持、开源社区支持等特点。详细介绍:1、高效的并发编程,Go语言内置了轻量级的协程和通道,使并发编程变得简单且高效;2、快速编译,Go语言的编译速度非常...
    99+
    2023-08-03
  • Java编程基础语法有哪些
    本篇内容主要讲解“Java编程基础语法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java编程基础语法有哪些”吧!一、Java的词法1、标识符标识符是类、变量和方法等的名字,作用是让编译...
    99+
    2023-06-17
  • Linux系统中bash shell编程的基础问题有哪些
    这篇文章给大家分享的是有关Linux系统中bash shell编程的基础问题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第1问:为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使...
    99+
    2023-06-09
  • 有哪些编程语言
    编程语言有C语言、C++语言、Java语言、Python语言、JavaScript语言、Ruby语言、Go语言等。详细介绍:1、C语言,具有高效、简洁、强大的特点,被广泛应用于系统软件、嵌入式系统和游戏开发等领域;2、C++语言,拥有C语言...
    99+
    2023-08-14
  • ADO.NET数据库编程技巧都有哪些
    ADO.NET数据库编程技巧都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文...
    99+
    2023-06-17
  • JavaScript词法都有哪些
    这篇文章将为大家详细讲解有关JavaScript词法都有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。InputElement 输入元素输入元素是JS词...
    99+
    2024-04-02
  • canvas方法都有哪些
    canvas常见的方法有getContext()、fillRect()、strokeRect()、clearRect()、beginPath()、moveTo()、lineTo()、arc()、fill()、stroke()、save()、...
    99+
    2023-08-17
  • Linux bash程序的调试技巧有哪些
    这篇文章主要介绍“Linux bash程序的调试技巧有哪些”,在日常操作中,相信很多人在Linux bash程序的调试技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux bash程序的调试技巧...
    99+
    2023-06-16
  • Linux命令具体都有有哪些
    这篇文章主要为大家分析了Linux命令具体都有有哪些的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux命令具体都有有哪些”的知识吧。Linux是一套免...
    99+
    2023-06-28
  • Linux中高效编写Bash脚本的技巧有哪些
    这篇文章主要介绍了Linux中高效编写Bash脚本的技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单...
    99+
    2023-06-16
  • PHP的编程语句有哪些
    小编给大家分享一下PHP的编程语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 简单的语句每行至多包含一条语句,例如:以下为引用的内容:$argv++;...
    99+
    2023-06-17
  • bash 编程中循环语句用法
    1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; then...
    99+
    2022-06-04
    语句 bash
  • Java都有哪些创建线程的方法
    目录1.继承Thread类1.1 普通类继承Thread1.2 匿名内部类1.3 缺点分析2.实现Runnable接口2.1 普通类实现Runnable2.2 匿名Runnable实...
    99+
    2024-04-02
  • Linux打包命令都有哪些呢
    这期内容当中小编将会给大家带来有关Linux打包命令都有哪些呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Linux下打包命令有哪些?Linux下可用于打包的命令有很多,下面为大家分享一下Linux下常...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作