五天教你学会Shell——第一天

发布于:2023-01-13 ⋅ 阅读:(528) ⋅ 点赞:(0)

目录

一、实验要求:

二、实验操作:

1.命令使用:echo、eval、exec、export、read、shift、exit(要求退出码为222)


一、实验要求:

问题总览

1.命令使用:echo、eval、exec、export、read、shift、exit(要求退出码为222)
  这些命令的功能,以及用例
2..使用read从标准输入读取两个变量: name1和name2, 要求name1包含空格
3.定义自定义环境变量:(使用export和declare)
         针对root用户的所有连接:root_data=root
         针对所有用户的变量: all_data=all
        查看所有的环境变量, 查看所有变量
4.脚本执行的方式及特点:用样例验证
5.设置vim编辑sh文件的缩进为4个空格
6.$#,$*,$@,$n,$?的使用

二、实验操作:

1.命令使用:echo、eval、exec、export、read、shift、exit(要求退出码为222)

echo:echo可在屏幕上输出信息

[root@localhost test]# a=tuerqi
[root@localhost test]# echo  $a
tuerqi

eval:”命令格式:eval args

功能:当 shell 程序执行到 eval 语句时, shell 读入参数 args ,并将它们组合成一个新的命令,然后执
行。
[root@localhost tuerqi]# a='yq;head tuerqi'
[root@localhost tuerqi]# echo $a
yq;head tuerqi
[root@localhost tuerqi]# eval echo $a
yq
first day
hello world!
how are you?

 
ps :提前写一个tuerqi的文件
[root@localhost tuerqi]# cat tuerqi
first day
hello world!
how are you?

exec:

exec 命令能够在不创建新的子进程的前提下,转去执行指定的命令,当指定的命令执行完毕后,该
进程就终止了。

export:设置或者显示环境变量

read: 命令可从标准输入读取字符串等信息,传给 shell 程序内部定义的变量。
-p prompt :设置提示信息
-t timeout :设置输入等待时间,单位默认为秒
[root@localhost test]# read -t 100 -p "input name1 and name2:" name1 name2 
input name1 and name2:Jack\ chen  Yang qi
[root@localhost test]# echo $name1
Jack chen
[root@localhost test]# echo $name2
Yang qi

 

shift:在程序中每使用一次shift语句,都会使所有的位置参数依次向左移动一个位置,并使位置参

$# 1 ,直到减到 0 为止。

exit:退出shell程序。在exit之后可以有选择地指定一个数(222)作为返回状态

 2.使用read从标准输入读取两个变量: name1和name2, 要求name1包含空格

3.定义自定义环境变量

自定义环境变量:
一般是指用 export 内置命令导出的变量,用于定义 shell 的运行环境,保证 shell 命令的正确执行。
境变量可以在命令行中设置和创建,但用户退出命令行时这些变量值就会丢失 ,即该环境变量只在当前shell和子 shell 中有效。如果希望永久保存环境变量,可以在配置文件中设置。
①用户的环境变量配置( non-login shell
~/.bash_profile ~/.bashrc
②全局环境变量的配置( login shell
/etc/bashrc /etc/profile 文件或者 /etc/profile.d 目录中定义。

针对root用户的所有连接:root_data=root

在~/.bashrc 下自定义变量

[root@localhost test1]# vim ~/.bashrc

 针对所有用户的变量: all_data=all

在/etc/bashrc 下自定义变量

vim /etc/bashrc

 

查看所有的环境变量, 查看所有变量

export

 declare

4.脚本执行的方式及特点:用样例验证

1bash ./filename.sh

使用指定的shell去运行

没有权限也可以运行

产生子进程

(2)./filename.sh

使用默认的shell去运行

需要x权限才可以运行

产生子进程

5.设置vim编辑sh文件的缩进为4个空格

在~/.vimrc下添加

set tabstop=4

如图:

 

 6.$#,$*,$@,$n,$?的使用

$#

$*和$@

当被双引号包围时,$@与没有被双引号包围时没有变化,每个参数依然是独立的。但是$*被双引号包围时,会将所有参数看作一个整体。下面两段代码的结果是不同的。

 ​​​​​​​​​​​​​​

$n

显示第几个参数

$?

显示返回值 

除0意外的返回值都是异常返回

 

 

 

 

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到