ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell练习题

2020-09-12 19:02:29  阅读:218  来源: 互联网

标签:练习题 bin shell 脚本 echo array my bash


总结内容如下:
1.如何向脚本传递参数,并在脚本中获取参数,举例说明 ?
先创建一个脚本,
#!/bin/bash开头,脚本名字,脚本创建时间,脚本创作者,脚本路径
echo “”结尾
sh 脚本名字获取参数
例如:
[root@hadoop105 shell_class25]#vim aa.sh
#!/bin/bash
#DESC:第一个脚本输出helloword
#PATH: /root/shell_class25
#NAME:helloword.sh
#AUTHER:张三
#UPDATE:2020-09-12
#...
echo "helloword"

2.Shell中的特殊变量有哪些分别表示什么含义?自定义变量时,变量的作用域范围有哪些分类?
特殊变量:
$n:n为数字,$0代表该脚本名称$1-$9代表第一到第九个参数,十以上参数需要用大括号${10}
$#:获取所有输入参数个数,常用语循环
$*:代表命令行所有参数,$*把所有参数看成一个整体
$@:代表命令行所有参数,$@把每个参数区分对待
$?:最后一次执行命令结果为0,命令正确,结果不为0,命令错误
自定义变量:
用户变量作用域:定义变量,读取变量,撤销变量,静态变量
全局变量作用域:关键字,定义变量,撤销和读取变量
系统环境变量作用域:编辑配置文件,添加系统环境变量,变量生效
3.如何查看脚本语法错误,如何查看脚本的执行流程?
$ ./查看脚本语法是否正确,
查看脚本的执行流程:
#!/bin/sh下增加set -x
!bash -x strtst.sh执行脚本
4.如何进行两个整数相加,能想出几种,写几种 ?
expr 1 + 2
expr $[1+2]
echo $[1+2]
5.每个脚本开始的 #!/bin/sh 或 #!/bin/bash 表示什么意思 ?如何执行脚本?
#!/bin/bash或#!/bin/bash表示脚本的解释执行,#!是特殊的表示服,#!后面是解释脚本的路径
6.命令:[ -z "" ] && echo 0 || echo 1 的输出是什么?
输出的是0,命令语法正确,
7.“export” 关键字有什么用 ?
自定义系统变量
8. & 和 && 有什么区别
在运算时,&&一旦能够确定整个表达式的值就不会再计算表达式剩下的部分
而&就不会出现短路情况
9.如何将整数 a 加到 b 并赋值给 c ?
c=$[a+b]
echo $c
10.[ $a == $b ] 和 [ $a -eq $b ] 有什么区别
[ $a == $b]:在字母操作中==会产生错误
[ $a -eq $b]:把==换成-eq就不会产生错误了
11.如何在 bash 中定义数组 ? 如何打印数组的第一个元素 ? 如何打印数组的所有元素 ? 如何输出所有数组索引 ? 如何移除数组中索引为 2 的元素 ?
#!/bin/bash
#DESC:定义一个数组
#NAME:helloword03.sh
#PATH:/root/shell_class25
#USER:chen
#UPDATE:2020-09-12-16:53
my_array=(1 2 3 4 5 6)
echo "定义的数组为:my_array=(${my_array[*]})"
echo "数组的第一个元素为: ${my_array[0]}"
echo "数组的所有元素为: ${my_array[@]} "
echo "所有数组索引:
${my_array[0]}
${my_array[1]}
${my_array[2]}
${my_array[3]}
${my_array[4]}
${my_array[5]}"
echo "移除数组中索引: ${unset my_array[2]}"
12.shell解析器有哪些?列举出即可?Centos6和7默认使用得是哪一个?
/bin/sh 是bash的一个快捷方式
/bin/bash bash是大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能
/sbin/nologin 表示非交互,不能登录操作系统
/bin/dash 小巧,高效,功能相比少一些
/bin/tcsh 具有C语言风格的一种shell,具有许多特性,但是也有一些缺陷
/bin/csh 是csh的增强版本,完全兼容csh
默认使用/bin/sh和/bin/bash
13.如何比较两个数字?如何对比两个字符串?如何判断文件类型?如何判断文件权限?
比较两个数字:
[ 3 -ge 2 ]
echo $?
对比两个字符串:
[ a == b ]
echo $?
判断文件类型:
-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence)
-d 文件存在并是一个目录(directory)
判断文件权限:
-r 可读权限(read)
-w 可写权限(write)
-x 可执行权限(execute)

标签:练习题,bin,shell,脚本,echo,array,my,bash
来源: https://www.cnblogs.com/ckf666/p/13658014.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有