美文网首页
Shell系列(一)创建shell程序与shell变量

Shell系列(一)创建shell程序与shell变量

作者: 曲谐_ | 来源:发表于2018-11-09 15:09 被阅读0次

知乎高票回答:Bash处理一次性的琐碎事物,Python处理自动化,代码量较大的的维护任务。而需要效率的任务交给C/C++。
作为Linux开发人员,掌握Bash脚本是很重要的,但是最近吸收的东西太多了没办法都记住,所以一定要写写博客记录一下。
一个比较好的免费课程(shell脚本编程入门到精通)https://edu.aliyun.com/course/155?spm=5176.10731542.0.0.ATHyuM


一、创建步骤

开头
#!/bin/bash#!用作shell命令的完全路径,显示后期命令以哪种shell来执行这些命令。如不指定shell,以当前shell作为执行的shell。/bin/sh ->bash。
shell程序一般以.sh结尾。
创建shell程序的步骤

  • 创建一个包含命令和控制结构的shell文件。
  • 修改这个文件的权限使它可以执行。
  • 执行。1)./example.sh 2)绝对路径/root/test/example.sh 3)使用bash,不需要执行权限。bash example.sh。

二、shell变量

shell传递数据的一种方法。变量是用来代表每个值的符号名。分为临时/永久变量。
临时变量:是shell程序内部定义的,使用范围仅限于定义它的程序,对其它程序不可见。
永久变量:注意,是环境变量,其值不随着shell脚本的执行结束而消失。
调用方法:echo $PATH(使用变量值时需要在前面加$)
环境变量非常重要,运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中查找。
变量赋值

image.png
关于$()和${}:

$()实际上括号里是系统命令的转化调用,如果你只是创建一个临时变量,那么会显示bash:command not found,而如果想转换这种变量需要使用花括号即${}。

image.png

前面加上$的变量表示调用该变量的值。
显示所有变量:set,多个单词用(“”/'')引号括起来即可。
单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。双引号取消了空格的作用,特殊符号的含义保留。

image.png
删除变量:unset name
位置变量和特殊变量:Shell解释执行用户的命令时,将命令行的第一个字作为命令名,而其它字作为参数。由出现在命令行上的位置确定的参数成为位置参数。
如:ls -l —> ls为命令名,-l为位置参数。
位置变量用$N来表示。如$0表示当前程序文件名,$N(1,……,n)表示命令行输入的参数。

特殊变量:有些变量是一开始执行Script脚本时就会设定,且不能被修改,但我们不叫它只读的的系统变量,而叫它特殊变量。这些变量当一执行程序时就有了,以下是一些特殊变量:

  • $*:这个程序的所有参数
  • $#:这个程序的参数个数
  • $$:这个程序的PID
  • $!:执行上一个后台程序的PID
  • $?:执行上一个指令的返回值

综合实例:

一、参数
#!/bin/bash
echo "$* all parameters"//程序的所有参数
echo "$# parameters amount"//程序的参数个数

touch /tmp/a.txt
echo "$$ PID"//程序进程ID

touch /tmp/b.txt &
echo "$! Last PID"//执行上一个后台指令的PID
echo "$$ PID"//程序进程ID

运行后结果

image.png

解释
注意$$是shell进程本身的PID,如果在shell script里,它就是shell script这个进程的PID。而touch后面我加了一个&,这意味着它以后台运行。因此如果我在touch a的时候加入$!,那么这个Last PID是没有值的。它是后台最后一个运行的进程的PID

二、变量
#!/bin/bash
var1="abcd efg"
echo $var1
var2=1234
echo"The value of var2 is $var2"
echo $HOME
echo $PATH
echo $PWD

运行后结果

image.png

相关文章

  • Shell系列(一)创建shell程序与shell变量

    知乎高票回答:Bash处理一次性的琐碎事物,Python处理自动化,代码量较大的的维护任务。而需要效率的任务交给C...

  • shell变量

    Shell变量 前面通过简单的程序了解了Shell的编辑和运行过程,这一节主要学习Shell的变量。 1.变量定义...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Bash Shell 语法快速预览

    易百Bash Shell教程创建shell> touch t.sh 运行 注释 变量 读取命令行参数shell> ...

  • “Linux命令行与shell脚本编程”-环境变量

    全局变量对shell会话和所有生成的shell都是可见的,局部变量只针对创建他们的shell可见。printe...

  • Linux命令行与Shell-----环境变量

    全局环境变量全局环境变量对于shell会话和所有生成的子shell都是可见的。 局部变量则只对创建它们的shell...

  • Shell 学习

    shell 变量 shell 参数传递 shell 数组 shell 运算符 shell echo 命令 prin...

  • Shell 概述

    学习 Shell 主要包括的内容: Shell 脚本入门 Shell 变量 Shell 内置命令 Shell 运算...

  • shell脚本基础

    编写脚本 编程基础 shell脚本 创建shell脚本 变量 运算 测试 配置用户的环境

  • Shell脚本语言一

    一、语法 格式 运行 Shell变量 Shell字符串 Shell数组 Shell注释 Shell传递参数 She...

网友评论

      本文标题:Shell系列(一)创建shell程序与shell变量

      本文链接:https://www.haomeiwen.com/subject/xfimxqtx.html