linux shell脚本之-变量极速入门与进阶(2)

1,$$:显示当前的进程id号

[email protected]:~/linux/shell/how_to_use_var$ cat show_pid.sh
#!/bin/bash
echo $$
sleep 3000
[email protected]:~/linux/shell/how_to_use_var$ bash show_pid.sh &
[1] 9401
[email protected]:~/linux/shell/how_to_use_var$ 9401

[email protected]:~/linux/shell/how_to_use_var$ ps -ef | grep show_pid
ghostwu   9401  2792  0 06:07 pts/18   00:00:00 bash show_pid.sh
ghostwu   9404  2792  0 06:07 pts/18   00:00:00 grep --color=auto show_pid
[email protected]:~/linux/shell/how_to_use_var$ ps -ef | grep show_pid | grep -v grep
ghostwu   9401  2792  0 06:07 pts/18   00:00:00 bash show_pid.sh
[email protected]:~/linux/shell/how_to_use_var$ kill 9401
[email protected]:~/linux/shell/how_to_use_var$ ps -ef | grep show_pid
ghostwu   9478  2792  0 06:08 pts/18   00:00:00 grep --color=auto show_pid
[1]+  Terminated              bash show_pid.sh

2,(())用于整数的常用运算符

>把两个整数的运算结果赋值给一个变量,前面要加$

[email protected]:~/linux/shell/how_to_use_var$ a=((10+20))
bash: syntax error near unexpected token `(‘
[email protected]:~/linux/shell/how_to_use_var$ a=$((10+20))
[email protected]:~/linux/shell/how_to_use_var$ echo $a
30

3,四则运算

[email protected]:~/linux/shell/how_to_use_var$ bash calc.sh 10 2
a+b=12
a-b=12
a*b=12
a/b=12
a**b=100
a%b=0
[email protected]:~/linux/shell/how_to_use_var$ cat calc.sh
#!/bin/bash
a=$1
b=$2
echo "a+b=$(($a+$b))"
echo "a-b=$(($a+$b))"
echo "a*b=$(($a+$b))"
echo "a/b=$(($a+$b))"
echo "a**b=$(($a**$b))"
echo "a%b=$(($a%$b))"

4,let用于整数运算,类似(())

[email protected]:~/linux/shell/how_to_use_var$ i=10
[email protected]:~/linux/shell/how_to_use_var$ let i=i+10
[email protected]:~/linux/shell/how_to_use_var$ echo $i
20

不使用let,是不会计算变量的值

[email protected]:~/linux/shell/how_to_use_var$ i=2
[email protected]:~/linux/shell/how_to_use_var$ i=i+8
[email protected]:~/linux/shell/how_to_use_var$ echo $i
i+8

5,bash内置命令read,通过参数-p 提示信息,读入变量的值

[email protected]:~/linux/std_err_out$ read -p "pls input 2 number:" a b
pls input 2 number:10 20
[email protected]:~/linux/std_err_out$ echo $a $b
10 20

10,test -f 判断普通文件是否存在

[email protected]:~/linux/std_err_out$ ls
ghostwu.txt  output_error.txt  std_out1.txt  std_out.txt
[email protected]:~/linux/std_err_out$ test -f ghostwu.txt && echo 1 || echo 0
1
[email protected]:~/linux/std_err_out$ test -f ghostwu2.txt && echo 1 || echo 0
0

test -z 测试字符串长度是否为0

gh[email protected]:~/linux/std_err_out$ test -z "hello" && echo 1 || echo 0
0
[email protected]:~/linux/std_err_out$ test -z "" && echo 1 || echo 0
1

中括号[]与test一样.

[email protected]:~/linux/std_err_out$ [ -f ghostwu.txt ] && echo 1 || echo 0
1
[email protected]:~/linux/std_err_out$ [ -f ghostwu2.txt ] && echo 1 || echo 0
0

11,判断一个变量值或者字符串是否为整数?

利用expr做计算时变量或者字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0。如果为0,就认为做加法的变量或字符串为整数,否则不是整数。

[email protected]:~/linux/shell/flow_control$ i=10
[email protected]:~/linux/shell/flow_control$ expr $i + 1 >/dev/null
[email protected]:~/linux/shell/flow_control$ echo $?
0
[email protected]:~/linux/shell/flow_control$ i=‘a‘
[email protected]:~/linux/shell/flow_control$ expr $i + 1 >/dev/null 2>&1
[email protected]:~/linux/shell/flow_control$ echo $?
2

原文地址:https://www.cnblogs.com/ghostwu/p/9103185.html

时间: 2024-10-19 10:50:49

linux shell脚本之-变量极速入门与进阶(2)的相关文章

Linux Shell脚本入门--cut命令

Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [[email protected] ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符 [[email protected] ~]# cut -c 字符区间 <==用于排列整齐的信息 选项与参数: -d :后面接分隔字符.与 -f 一起使用: -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思: -c :以字符 (

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

Linux Shell 脚本入门

linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filename.sh shell 中的局部变量变量的声明,赋值,无需 $ 符号 , 如:myUrl="abc"myVar="asd" 需要注意等号两边不能有空格. 输出变量值echo "myurl:${myUrl}"echo "myvar:${myV

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

Linux shell脚本流程控制

博主搬家至51CTO,初来乍到,请多指教. 此次我们来通过实例解析Linux shell脚本流程控制 Linux shell脚本流程控制可分为三类:顺序执行,条件选择执行,循环执行 顺序执行:简单理解就是逐行执行脚本内容,逐行解读,逐行执行.(此处不做实例解析) 条件选择执行:可以理解为先进行某一条件的判断选择,再决定执行怎样的脚本内容.常见语句if case 条件选择语句:if if语句用法: 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

Linux Shell脚本攻略(1.2)

1.2 终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的. echo终端打印 echo "Welcome to Bash" echo 'Welcome to Bash' echo Welcome to Bash 以上三种方法的效果是一样的,输出内容都是"Welcome to Bash",并在末尾添加换行符.在默认情

Linux Shell脚本编程学习笔记和实战

http://www.1987.name/141.html shell基础 终端打印.算术运算.常用变量 Linux下搜索指定目录下特定字符串并高亮显示匹配关键词 从键盘或文件中获取标准输入 [read命令] 文件的描述符和重定向 数组.关联数组和别名使用 函数的定义.执行.传参和递归函数 条件测试操作与流程控制语句 获取时间日期格式和延时 [date.sleep命令] 内部字段分隔符IFS和脚本的调试DEBUG 显示.读取或拼接文件内容 [cat命令] 文件查找与打印文件列表 [find命令]