linux shell编程子bash变量
参考视频:https://www.imooc.com/u/279399/courses?sort=publish
https://www.imooc.com/video/6516 慕课网
用户的自定义变量:
[root@localhost ~]# x=5
[root@localhost ~]# echo $x
5
[root@localhost ~]# y=6
[root@localhost ~]# z=$x+$y
[root@localhost ~]# echo z
z
[root@localhost ~]# echo $z
5+6
变量不会直接进行数值相加
变量的叠加
[root@localhost ~]# x=123
[root@localhost ~]# x="$x"456
[root@localhost ~]# echo $x
123456
[root@localhost ~]#
环境变量
环境变量是全局变量
自定义变量是局部变量


将目录/root/sh目录添加到系统环境变量中
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin
[root@localhost ~]# PATH="$PATH":/root/sh
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin:/root/sh
[root@localhost ~]#

[root@localhost ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
[root@localhost ~]# echo $LANG
en_US.UTF-8
[root@localhost ~]#

Linux纯粹的字符界面是不支持中文的。

第三方工具SecureCRT 7.3,可以设定支持UTF-8


把外部传递的第一个变量赋值给num1
把外部传递的第二个变量赋值给num2
#!/bin/bash
num1=$
num2=$
sum=$(($num1+$num2))
echo $sum
执行:
[root@localhost home]# ./aa.sh 111 222
333
111传递给num1 ,222传递给num2
$((带上两个小括号表示数值运算的操作
第二个操作案例:
bb.sh
#!/bin/bash
echo $*
echo $@
echo $#
[root@localhost home]# ./bb.sh 88 99 00 22 77
88 99 00 22 77
88 99 00 22 77
5
$*和$@都是将产生当成整个返回,但是二者的区别是$*是把输入参数当成一个整体,所以for循环只会循环一次

这里有一个特别需要强调的是使用$*和$@必须使用双引号括起来,不然在使用的时候数值会发生变化
#!/bin/bash
for i in "$@"
do echo $i
done
[root@localhost home]# ./bb.sh 88 99 00 22 77
88
99
00
22
77

[root@localhost home]# kjdfkjkjfd
-bash: kjdfkjkjfd: command not found
[root@localhost home]# $?
-bash: 127: command not found
返回值是127
[root@localhost home]# echo $$
1106

read -p "please input your name:" -t name
echo $name
制定等待的时间是10秒
[root@localhost home]# ./dd.sh
please input your name:ksdfk
ksdfk
linux shell编程子bash变量的更多相关文章
- (一)Linux Shell编程——简介、变量、字符串、数组
1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- 一文学完Linux Shell编程,比书都好懂
一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
随机推荐
- Java实现 LeetCode 791 自定义字符串排序(桶排序)
791. 自定义字符串排序 字符串S和 T 只包含小写字符.在S中,所有字符只会出现一次. S 已经根据某种规则进行了排序.我们要根据S中的字符顺序对T进行排序.更具体地说,如果S中x在y之前出现,那 ...
- Java实现 蓝桥杯VIP 算法提高 质数的后代
算法提高 质数的后代 时间限制:1.0s 内存限制:256.0MB 问题描述 在上一季里,曾提到过质数的孤独,其实从另一个角度看,无情隔膜它们的合数全是质数的后代,因为合数可以由质数相乘结合而得. 如 ...
- 支持MMDVM的DMR手台
只要是数字机,都支持,但是,有便宜又好用的吗?当然有,店主做那么久肯定知道哪些机好用 1.MD760(UV双段) 刷固件支持#切换不同的TG,可以手动改机子的DMR ID,可以下载联系人,可以升级!关 ...
- 原声js数组去重方法
数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...
- jmeter怎么衡量tps的值
jmeter也没有tps这么个报告数据,后来又翻了翻loadrunner关于tps的定义 1.TPS:Trasaction per second也就是事务数/秒.它是软件测试结果的测量单位.一个事务是 ...
- 第一章04-Activity中常用的标志位
Activity的LaunchMode Android中提供了四中Activity的启动模式 1. standard 2. singleTop 3. singleTask 4. signleInsta ...
- .NetCore对接各大财务软件凭证API——用友系列(2)
一. 前言 今天我们继续来分析用友系列的第二个产品--U8Cloud2.5 ,apilink方式的API.官网的API文档地址如下:U8API文档 因为我们主要是凭证对接,所以使用到的模块有总账.基础 ...
- 关于vue不能像angular深度克隆数据解决办法
vue要让数据源实现响应式前提必须要在初始化的时候有这个属性 如果没有这个属性,也可实现数据实时响应.解决方法: this.数组/对象.spice(0,1,'属性值') Vue.set(要修改的数组或 ...
- Python--循环--for && while
for循环示例:猜数字游戏 winning_number = 38 for i in range(3): guess_num = int(input("guess num:") ) ...
- ubuntu18.04安装qt时候的错误解决
在ubuntu系统下安装好qt5.5后启动qtceator时提示: Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库Qt5 ...