Linux虚拟机中shell编程(入门)_怎么将虚拟机改为cshell_turkizat?的博客-程序员秘密

技术标签: shell  linux  

shell script(shell脚本)

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,shell 和 shell script 是两个不同的概念。

第一个shell脚本: Hello World!

  • 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh:vi test.sh扩展名为 sh(sh代表shell),扩展名并不影响脚本执行
  • test.sh中输入:
    #!/bin/bash
    echo "Hello World !"
    #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
    echo 命令用于向窗口输出文本
  • chmod +x ./test.sh 使脚本具有执行权限
  • ./test.sh 执行脚本

shell变量

变量的使用和定义

  • 定义变量时,变量名不加美元符号($,PHP语言中变量需要)

  • 使用一个定义过的变量,只要在变量名前面加美元符号即可

  • 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

  • 运行shell时,会同时存在三种变量:

    1. 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
    2. 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
    3. shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
  • 这里我们来做一个变量的简单实际应用:
    如图所示:新建一个.sh文件,输入如下图在这里插入图片描述得到的结果为:
    在这里插入图片描述
    预定义变量
    如下:
    在这里插入图片描述
    位置变量

  • $n(n为数字) :$0 代表命令本身,$1-$9代表顺序参数编号,大于10的话使用括号,如${10}
    简单实际应用:
    在这里插入图片描述所得结果如下图:
    在这里插入图片描述

shell运算符

算数运算符

下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述

布尔运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

字符串运算符

在这里插入图片描述

文件测试运算符

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46752181/article/details/106911555

智能推荐

Actor简介(二)_getcontext().actorof_西红柿丶番茄的博客-程序员秘密

       在上一部分,我们已经介绍了actor的基本用法,知道如何创建一个actor。我相信大家肯定不想局限于如此,一定想把actor紧紧的握在手中,掌握它的生死。come on ,来吧!     Actor生命周期       线程在运行历程中,会经历创建、准备、等待、阻塞等阶段,这一系列我们称之为生命周期。当然,actor也有它自己的生命历程,比如创建、运行、重启和销毁等。在理想的...

SQL Server Profiler使用教程,通俗易懂才是王道_weixin_30610755的博客-程序员秘密

SQL Server Profiler使用教程,通俗易懂才是王道 原文:SQL Server Profiler使用教程,通俗易懂才是王道  做开发,平时难免和数据库打交道,特别是写存储过程,对于我们这些不常写SQL的人来说是一件极其痛苦的事,每次写完运行总是有错,如果用的是本地数据库的话还好,可以在本机调试SQL,那如果在数据库在服务器上面,调...

Android和Linux:你俩到底啥关系_linux android_武汉大学计算机学院智能计算系统实验室的博客-程序员秘密

最近正在着手研究android,自己虽然还算是熟悉Linux,但对Android可是一窍不通,都说Android就是个装了UI的Linux,可到底和Linux有什么关系呢?根据Linux官方文档,Android分为以下几层: 应用框架。应用框架最常被应用开发者使用。作为硬件开发者,您应该非常了解开发者 API,因为很多此类 API 都可以直接映射到底层 HAL 接口,并可提供与实现驱动程序相关的实用信息。 Binder IPC。Binder 进程间通信 (IPC) 机制允许应.

推荐:全新Java开发思维导图_weixin_30853329的博客-程序员秘密

蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!路其实一直都在那里,只是我们看不到而已!以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自...

发布5个月全系下跌500 麒麟980+40W快充 多亏了华为P30!_weixin_34257076的博客-程序员秘密

  3月26日也就是明天,华为将会在法国巴黎发布新一代P系列旗舰机,目前关于P30系列的外观、配置网上已经基本曝光的差不多了。  随着华为P30系列逐渐到来,近日小编发现剧情介绍发布于2018年10月份的华为Mate20系列迎来了降价,而且是全系降价,力度非常大。  小编去华为授权的网店进行了查询,结果发现起售价3999的华为Mate20到手仅为3499,而且还享受六期免息,不仅如此,华为Ma...

Linux下更改时间、时区_hebbely的博客-程序员秘密

简述:date命令查看设置系统时间;hwclock命令查看、设置硬件时间;要修改时区并且马上生效,可以更换/etc/localtime 文件来实现;实现命令: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 或 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date

随便推点

浅谈Java中15种锁的分析比较_335046781的博客-程序员秘密

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类,介绍的内容如下:公平锁 / 非公平锁可重入锁 / 不可重入锁独享锁 / 共享锁互斥锁 / 读写锁乐观锁 / 悲观锁分段锁偏向锁 / 轻量级锁 / 重量级锁自旋锁上面是很多锁的名词,这些分类并不是全是...

NO.002:dsPIC33EP系列配置位的配置方法_dspic33ep32mc例程_lilingyun1994的博客-程序员秘密

对小白来说,最困难的一步终于来了。我之前一直使用dsPIC30F4011,它的配置位相对来说比较简单,就4个寄存器需要配置,本以为有了4011的基础,上手dsPIC33EP系列比较简单,谁知参考了它的数据手册,自己做了一个dsPIC33EP512MC504最小系统板后(在文章最后有几张实物图),发现它的配置位多达6个之多,而且每个寄存器内部有些位配置起来摸不着头脑,看了好多天的数据手册加上网上查资...

明氏距离_tslj的博客-程序员秘密

明氏距离:明可夫斯基距离(Minkowski Distance)的简称,也被称为闵氏距离。定义的并不是一种距离,而是一组距离。定义:两个n维变量与间的明氏距离定义为:            ,其中p是一个变参数。当p=1时,明氏距离即为曼哈顿距离;当p=2时,明氏距离即为欧氏距离;当时,明氏距离即为切比雪夫距离。曼哈顿距离:Manhattan Distance,又叫

ERROR 2003 (HY000):Can‘t connect to MySQL server on ‘bj-xxx-xxx-xxx.sql.tencentcdb.com‘(10060)_zqq_2016的博客-程序员秘密

1. 问题原因小编使用cmder命令行连接MySQL腾讯云数据库时,没有指定端口号。如果不用-P参数指定端口号的话,那么端口默认就是3306。而腾讯云数据库的端口并不是3306,导致出现这个问题。2. 解决方案在连接mysql腾讯云数据库时,使用-P参数指定端口号即可。 mysql -h bj-xxx-xxx-xxx.sql.tencentcdb.com -P xxx -u root -p执行完以上命令后,根据提示输入云数据库的密码。如出现下图所示,即连接成功。如果...

wayland&weston_kevin_Android_123456的博客-程序员秘密

简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形系统经历了30年左右的发展,其设计在今天看来已略显陈旧。在X系统中,X Server作为中心

硬件工程师面试经历2015---笔试篇_硬件工程师面试试题csdn_guomutian911的博客-程序员秘密

今年就业形势:今年形势依旧不景气,英特尔硬件部门基本不招人,思科硬件部门和信号完整性方面也不招人,EMC,IBM,AMD硬件开发也没有名额,可能会有校招,但一般是噱头做广告。英伟达倒是搞的轰轰烈烈,最后也没招人。后面的同学不要对这些公司抱太多希望。       从8月份开始起到现在找工作花了3个多月,慢慢的也接近尾声了,因此我考虑着花点时间把这段时间的笔试面试好好总结一下,也供正在找工作或者以

推荐文章

热门文章

相关标签