Shell编程(四)Shell变量
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变量的更多相关文章
- shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)
一,Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合. ...
- Shell编程四剑客包括:find、sed、grep、awk
一.Shell编程四剑客之Find Find工具主要用于操作系统文件.目录的查找,其语法参数格式为: find path -option [ -print ] [ -exec -ok command ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...
- 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- 【Shell编程】Shell程序设计
1.Shell简介 作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统. Sh ...
- Shell 编程基础之变量和环境变量
一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...
- shell编程之环境变量
在shell编程里我们首先接触到的是环境变量,常用命令说明 1. 使用echo命令查看单个环境变量.例如: echo $PATH 2. 使用env查看所有环境变量.例如: env 3. 使用set查看 ...
- (一)Linux Shell编程——简介、变量、字符串、数组
1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...
随机推荐
- 最简单的spring boot web项目
搭建效果为: 直接在网页输入请求,在页面中显示一行文字:Hello,Spring Boot 与一般的wen项目不同的地方: 1.不需要配置web.xml 文件,但需要注解@SpringBootAppl ...
- linux test条件测试
语法 test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]] 1.数值测试 -eq 是否等于 -ne 是否不等 -gt 是否大于 -ge 是否大于等于 -lt ...
- HR_Minimum Swaps 2
源代码超时 看了评论区改用了字典序列. #!/bin/python3 import math import os import random import re import sys # Comple ...
- 2018-2019 ACM-ICPC Pacific Northwest Regional Contest C Contest Setting(DP)
比赛链接:Contest Setting C题 题意:$n$道题目,每道题目难度为$ai$,选择$k$道难度不同的题目,有多少种选择方案.$1<=k<=n<=1000,1<=a ...
- 配置日志中显示IP
package com.demo.conf; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback ...
- LOJ#6279. 数列分块入门 3
区间加值还是正常的操作,查找前驱的时候用lower_bound查找,然后范围所在位置的值 #include<map> #include<set> #include<cti ...
- [HEOI2015]小Z的房间(矩阵树定理学习笔记)
题目描述 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. 你想要打通一 ...
- mysql5.6做单向主从复制Replication
原理场景:MySQL从3.23版本开始提供复制功能.指的是将主数据库的DDL和DML操作通过二进制日志传到从服务器(也叫从库),然后在从库上对这些日志重新执行, 从而使得从库和主库的数据保持同步. 优 ...
- CentOS单网卡绑定双IP
OS:CnetOS 6.8 初始网卡配置文件 [root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...
- Spring Boot实战
Spring在java EE开发中是实际意义上的标准,但我们在开发Spring的时候可能会遇到以下令人头疼的问题: 1.大量配置文件的定义.2.与第三方软件整合的技术问题. Spring每个版本的退出 ...