二、shell变量实战详解

shell变量

点击这里:查看shell变量的数学运算
点击这里:查看shell变量的替换,删除,切片

一、命令替换

`` 和 $(),先执行符号里面得命令,将命令结果作为变量值。

# ` `
today1=`date +%F`
echo $today1
2020-03-25
# $()
today2=$(date +%F)
echo $today2
2020-03-25

二、位置变量

$1 : 用户输入得第一个参数
$2:用户输入得第二个参数


三、预定义变量 (预定义变量需要执行时指定参数)

预定义变量指定得参数一般为定义好得文件,比如执行脚本生成用户,会将用户写成一个文件,直接引用这个文件即可。

$? 上一个命令得返回值0表示成功
$0 脚本名
$$ 当前脚本得进程
$* 所有参数
$# 所有参数得个数

练习例句:如果用户没有加入参数

1.$# 是用户输入参数得个数,如果 $# == 0 则代表没有输入


if [  $#  -eq  0 ];then
		echo "Try:input  some  value for  `basename $0`"
fi 

2.如果$1用户输入的,并且不是一个文件,则提示该内容不是文件
-f 判断是否为文件 -d 判断是否为目录

if [ ! -f $1 ];then
		echo "`basename $1` is not file"
fi

3.生成一个IP地址的文件,在脚本中进行轮询ping这个文件内的主机地址


for ip in `cat $1`;
do
	ping -c1 $ip &> /dev/null
	if [ $? -eq 0 ];then
		echo "$ip is up ~!"
	else
		echo "$ip is down ~!"
	fi
done

三、自定义变量

定义变量:
基本的变量 ,变量名=变量值 ,变量名必须以字母或者下划线开头,区分大小写。

引用变量
$符号,引用变量
$变量名 / ${变量名}

查看变量
echo $变量名

取消变量
unset 变量名


四、环境变量

环境变量一般都是系统在使用得变量,并不会过多应用在脚本中进行执行

定义环境变量得方法:

方法1:export 变量名=变量值
方法2:export 脚本文件 / export 变量名

引用变量
$符号,引用变量
$变量名 / ${变量名}

查看变量

echo $变量名
env | grep 脚本名 (env显示所有得环境变量,env |grep 显示想要查看得某个环境变量)

取消环境变量
unset 变量名


练习

1.可以定义个父级脚本,在父级脚本中定义很多得公共变量

2.然后在子脚本中,通过 source 和 . 得方式引用父级别脚本得公共变量,到子脚本中引用执行

父脚本:public.sh
子脚本:sub1.sh
子脚本:sub2.sh

/shell/public.sh

#!/bin/bash
name1=zs
name2=ls
name3=ww
passwd=123.com
path=/tmp/passwd.txt

/shell/sub1.sh

#!/bin/bash
source /shell/sub1.sh
useradd $name1 $name2 $name3

/shell/sub2.sh

#!/bin/bash
source /shell/sub1.sh
echo "$name1:$passwd"  >>  $path
echo "$name2:$passwd"  >>  $path
echo "$name3:$passwd"  >>  $path

五、赋值变量

1.从键盘赋值
2.直接赋值

‘’:强引用
“”:弱引用

read 命令,从键盘赋值

-p:提示信息
-t:倒计时显示时间
-n:指定字符
-u:文件描述符

read -p 从键盘读入一个值
例1: read -p "Please input a ip " ip
1.1.1.1

1.1.1.1

例2:read -n 5
12345

例:让用户一次性输入用户,年龄,性别

#!/bin/bash
read  -p "您的姓名,性别,年龄 [zhangsan,man,XX]:" name sex age

echo "您输入得姓名是: $name,性别:$sex,年龄:$age"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值