shell脚本的使用

一、思维导图

二、小练习

1、在家目录下创建目录文件dir1,把/etc/passwd拷贝到dir1中,把/etc/group拷贝到dir1中并重命名为grp.txt,使用tree指令,显示dir1目录的文件树,把dir1,分别压缩为dir1.tar.xz,dir1.tar.gz,dir1.tar.bz2

复制代码
#!/bin/bash
mkdir dir1
cp /etc/group /home/ubuntu/dir1/grp.txt
tree /home/ubuntu/dir1
tar -cjvf dir1.tar.bz2  dir1
tar -cJvf dir1.tar.xz  dir1
tar -czvf dir1.tar.gz  dir1

截图

2、输出脚本的第11个外部参数和所有外部参数的个数

复制代码
#!/bin/bash
echo  ${11}
echo $#

截图

3、尝试将read所有的指令结合输入一个变量

复制代码
#!/bin/bash
read -sp 请输入一个数 -n 1 -t 3 arr1
echo
echo $arr1

截图

4、使用命令置换符,获取到ubuntu用户在/etc/passwd中的行号,并赋值给变量。

复制代码
#!/bin/bash
a=`grep ubuntu /etc/passwd -n | cut -d : -f 1`
echo $a

截图

5、写一个脚本,使用外部参数给数组赋值,并输出数组中元素的个数

复制代码
#!/bin/bash
arr=($*)
echo ${#arr[*]}

截图

三、作业

1、使用数组求出当前目录下.sh文件的个数

复制代码
#!/bin/bash
arr=(`find /home/ubuntu/dir1 -name \*.sh`)
echo ${#arr[*]}

截图

2、使用数组求加目录下文件的个数

复制代码
#!/bin/bash
cd 
arr=(`ls`)
echo ${#arr[*]}

截图

相关推荐
叽里咕噜怪37 分钟前
VMware-三种网络模式
linux·运维·服务器
艾莉丝努力练剑1 小时前
【Linux权限 (二)】Linux权限机制深度解析:umask如何决定默认权限与粘滞位的妙用
大数据·linux·服务器·c++·ubuntu·centos·1024程序员节
稚辉君.MCA_P8_Java2 小时前
Java 基本数据类型 - 四类八种
java·linux·后端·mysql·架构
东木君_2 小时前
芯外拾遗第二篇:编译、工具链、烧录,你真的搞懂了吗?
linux·单片机·操作系统·嵌入式
虚伪的空想家2 小时前
HUAWEI A800I A2 aarch64架构Ubuntu服务器鲲鹏920开启 IOMMU/SMMU 硬件虚拟化功能
linux·服务器·ubuntu
赖small强3 小时前
[Linux] 内核链表实现详解
linux·内核链表·双向循环链表·list.h·list_head
Linux技术芯3 小时前
浅谈kswapd按照什么原则来换出页面的底层原理
linux
獭.獭.3 小时前
Linux -- 线程控制
linux·pthread·线程分离·线程取消·线程局部存储·lwp·线程栈
feng_blog66883 小时前
环形缓冲区实现共享内存
linux·c++
chen36733 小时前
嵌入式AI Arm_linux_第一个Demo_让IPU跑起来
linux·arm开发·人工智能