1. 自定义变量(仅在当前shell生效)

1.1 定义变量

#!/usr/bin/bash
ip=115.239.210.27 if ping -c1 $ip &>/dev/null ;then # &>/dev/null: output of ping $ip is null
echo "$ip is up."
else
echo "$ip is down."
fi

1.2 输入变量

#!/usr/bin/bash
read ip ping -c1 $ip &>/dev/null
if [ $? -eq ]; then
echo "$ip is up."
else
echo "$ip is down."
fi

1.3 位置变量 ($, $, $...${}....)

#!/bin/bash

ping -c1 $1 &>/dev/null
if [ $? -eq 0 ]; then
echo "$1 is up."
else
echo "$1 is down."
fi

1.4 预定义变量 ( $ \$0, \$*, \$@, \$\#, \$\$, \$!, \$? $ )

#!/bin/bash
echo "the par of 2: $2"
echo "the par of 1: $1"
echo "the par of 4: $4" echo "all par: $*"
echo "all par: $@"
echo "the num of par: $#"
echo "the PID of cur process: $$" echo '$1='$
echo '$2='$
echo '$3='$
echo '$*='$*
echo '$@='$@
echo '$#='$#
echo '$$='$$

1.5 综合

#!/bin/bash
# if user have no parma
if [ $# -eq ]; then
echo "usage: `basename $0` file"
fi if [ ! -f $ ]; then # not a file
echo "erro file!"
fi echo "ping........." for ip in `cat $`
do
ping -c1 $ip &>/dev/null
if [ $? -eq ];then
echo "$ip is up."
else
echo "$ip is down."
fi
done

2. 环境变量(在当前shell和子shell有效)

2.1 export

echo "ip1 is $ip1"
echo "ip2 is $ip2"

(ip2 是环境变量)

2.2  在一个bash文件中调用其他bash文件

2.3 env 查看所有环境变量

3. 命令代换: ` `或 $()

#! /bin/bash

pwd
ls DATA=$(date) echo $DATA $(curl www.itcast.cn > .html) pwd

4. 算术代换

4.1 $(()), expr

4.2 $[], let

5. 小数计算

echo "scale=3;6/4" |bc

awk 'BEGIN{print 1/2}'

6. 变量"内容"的删除和替换

6.1 从前往后删除(#:最近匹配; ##:贪婪匹配)

6.2 从后往前删除(%:最近匹配; %%:贪婪匹配)

6.3 索引方式切片

6.4 替换

贪婪匹配

6.6 替代 ${变量名-新的变量值}

变量没有被赋值:会使用“新的变量值”替代

变量有被赋值(包括空值):不会被替代

6.61 - 和 :-

6.62 + 和 :+

6.63 = 和 :=

6.64 ? 和 :?

Shell编程(四)Shell变量的更多相关文章

  1. shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)

    一,Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合. ...

  2. Shell编程四剑客包括:find、sed、grep、awk

    一.Shell编程四剑客之Find Find工具主要用于操作系统文件.目录的查找,其语法参数格式为: find path -option [ -print ] [ -exec -ok command ...

  3. Linux学习——shell编程之环境变量配置文件

    小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...

  4. shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...

  5. 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    [转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...

  6. 01 shell编程规范与变量

    前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...

  7. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  8. Shell 编程基础之变量和环境变量

    一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...

  9. shell编程之环境变量

    在shell编程里我们首先接触到的是环境变量,常用命令说明 1. 使用echo命令查看单个环境变量.例如: echo $PATH 2. 使用env查看所有环境变量.例如: env 3. 使用set查看 ...

  10. (一)Linux Shell编程——简介、变量、字符串、数组

    1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...

随机推荐

  1. 最简单的spring boot web项目

    搭建效果为: 直接在网页输入请求,在页面中显示一行文字:Hello,Spring Boot 与一般的wen项目不同的地方: 1.不需要配置web.xml 文件,但需要注解@SpringBootAppl ...

  2. linux test条件测试

    语法 test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]] 1.数值测试 -eq 是否等于 -ne 是否不等 -gt 是否大于 -ge 是否大于等于 -lt ...

  3. HR_Minimum Swaps 2

    源代码超时 看了评论区改用了字典序列. #!/bin/python3 import math import os import random import re import sys # Comple ...

  4. 2018-2019 ACM-ICPC Pacific Northwest Regional Contest C Contest Setting(DP)

    比赛链接:Contest Setting C题 题意:$n$道题目,每道题目难度为$ai$,选择$k$道难度不同的题目,有多少种选择方案.$1<=k<=n<=1000,1<=a ...

  5. 配置日志中显示IP

    package com.demo.conf; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback ...

  6. LOJ#6279. 数列分块入门 3

    区间加值还是正常的操作,查找前驱的时候用lower_bound查找,然后范围所在位置的值 #include<map> #include<set> #include<cti ...

  7. [HEOI2015]小Z的房间(矩阵树定理学习笔记)

    题目描述 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. 你想要打通一 ...

  8. mysql5.6做单向主从复制Replication

    原理场景:MySQL从3.23版本开始提供复制功能.指的是将主数据库的DDL和DML操作通过二进制日志传到从服务器(也叫从库),然后在从库上对这些日志重新执行, 从而使得从库和主库的数据保持同步. 优 ...

  9. CentOS单网卡绑定双IP

    OS:CnetOS 6.8 初始网卡配置文件 [root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...

  10. Spring Boot实战

    Spring在java EE开发中是实际意义上的标准,但我们在开发Spring的时候可能会遇到以下令人头疼的问题: 1.大量配置文件的定义.2.与第三方软件整合的技术问题. Spring每个版本的退出 ...