打印
[开发工具]

入门shell,了解基础命令,一天开始编写shell脚本

[复制链接]
1514|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小华带你入门shell,了解基础命令,一天开始编写shell脚本题目

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.KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,*, @ , @, @,n,$?的使用


使用特权

评论回复
评论
家有两宝呀 2022-10-17 23:47 回复TA
版权声明:本文为CSDN博主「X_缺头发的小华」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/X_quetoufa/article/details/126365243 
沙发
家有两宝呀|  楼主 | 2022-10-17 23:49 | 只看该作者
一、shell的功能

​ Shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于 Windows操作系统中的命令行,但是,Shell的功能远比命令行强大的多。在UNIX或者localhost中, Shell既是用户交互的界面,也是控制系统的脚本语言。

使用特权

评论回复
板凳
家有两宝呀|  楼主 | 2022-10-17 23:49 | 只看该作者
二、shell脚本编写规范

(1)脚本文件名应见名知意,例如backup_mysql.sh

(2)文件开头指定脚本解释器 #!/bin/sh 或 #!/bin/bash

(3)开头加版本特权等信息

(4)脚本中尽量不要用中文注释 别吝啬添加注释,必要的注释方便自己别人理解脚本逻辑和功能; 尽量用英文注释,防止本机或切换系统环境后中文乱码的困扰; 单行注释,可以放在代码行的尾部或代码行的上部; 多行注释,用于注解复杂的功能说明,可以放在程序体中,也可以放在代码块的开始部分。

(5)多使用内部命令 常用的内部命令有:echo、eval、exec、export、read、shift、exit

使用特权

评论回复
地板
家有两宝呀|  楼主 | 2022-10-17 23:51 | 只看该作者
三、命令使用:echo、eval、exec、export、read、shift、exit(要求退出码为222) 这些命令的功能,以及用例

echo

可在屏幕上输出信息

使用特权

评论回复
5
家有两宝呀|  楼主 | 2022-10-17 23:53 | 只看该作者
示例
[root[url=home.php?mod=space&uid=116006]@server[/url] day01]# echo -n I ; echo love ; echo xiaohua
Ilove
xiaohua
[root@server day01]# echo -n I ; echo -n love ; echo   xiaohua
Ilovexiaohua
[root@server day01]# echo -e "I\tlove\txiaohua"
I        love        xiaohua

使用特权

评论回复
6
家有两宝呀|  楼主 | 2022-10-17 23:53 | 只看该作者
eval

命令格式:eval args

功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令,然后执 行。
[root@server day01]# a='information;head -1 /etc/passwd'
[root@server day01]# echo $a
information;head -1 /etc/passwd
[root@server day01]# eval echo $a
information
root:x:0:0:root:/root:/bin/bash

使用特权

评论回复
评论
家有两宝呀 2022-10-17 23:54 回复TA
exec 命令能够在不创建新的子进程的前提下,转去执行指定的命令,当指定的命令执行完毕后,该 进程就终止了。 
7
家有两宝呀|  楼主 | 2022-10-17 23:56 | 只看该作者
export

设置或者显示环境变量

示例
[root@server day01]# var_a=123456                   //定义变量
[root@server day01]# export var_a                   //把var_a变为环境变量
[root@server day01]# var_b=321                      //定义变量var_b
[root@server day01]# bash                           //进入一个子进程
[root@server day01]# echo $var_a ; echo $var_b      //输出var_a、var_b
123456                                              // var_a的值                                                             // 变量var_b没有值
[root@server day01]# unset var_a                    //删除变量var_a
[root@server day01]# echo $var_a

[root@server day01]#

使用特权

评论回复
8
家有两宝呀|  楼主 | 2022-10-17 23:57 | 只看该作者
read

命令可从标准输入读取字符串等信息,传给shell程序内部定义的变量。

-p prompt:设置提示信息

-t timeout:设置输入等待时间,单位默认为秒

使用特权

评论回复
9
家有两宝呀|  楼主 | 2022-10-17 23:58 | 只看该作者
示例:
[root@server day01]# read -t 10 -p "please input your name:" name
please input your name:xiaohua
[root@server day01]# echo $name
xiaohua
//使用read从标准输入读取两个变量: name1和name2, 要求name1包含空格
[root@server day01]# read name1;read name2
xiao  hua      
xiaoming
[root@server day01]# echo $name1 ;echo $name2
xiao hua
xiaoming

使用特权

评论回复
10
家有两宝呀|  楼主 | 2022-10-17 23:59 | 只看该作者
shift

在程序中每使用一次shift语句,都会使所有的位置参数依次向左移动一个位置,并使位置参 数$#减1,直到减到0为止。 exit,退出shell程序。在exit之后可以有选择地指定一个数作为返回状态
[root@server day01]# vim test01.sh
#!/bin/bash
#########################
#File name:test.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-08-16 13:24:31
#Description:
#########################//内容如下
shift
echo $@
[root@server day01]# bash test01.sh 11 22 33 44
22 33 44

使用特权

评论回复
11
tpgf| | 2022-11-4 09:03 | 只看该作者
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

使用特权

评论回复
12
nawu| | 2022-11-4 09:17 | 只看该作者
Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

使用特权

评论回复
13
aoyi| | 2022-11-4 10:10 | 只看该作者
变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。

使用特权

评论回复
14
zljiu| | 2022-11-4 10:33 | 只看该作者
使用一个定义过的变量,只要在变量名前面加美元符号即可

使用特权

评论回复
15
gwsan| | 2022-11-4 10:45 | 只看该作者
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

使用特权

评论回复
16
tfqi| | 2022-11-4 11:22 | 只看该作者
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出

使用特权

评论回复
17
sdCAD| | 2023-1-5 12:52 | 只看该作者
shell脚步还是比较复杂的。              

使用特权

评论回复
18
albertaabbot| | 2023-1-6 21:53 | 只看该作者
这个是电脑运行的脚步的吗?
              

使用特权

评论回复
19
wwppd| | 2023-1-6 22:52 | 只看该作者
这个怎么传递参数到命令?              

使用特权

评论回复
20
sheflynn| | 2023-1-9 11:43 | 只看该作者
串口运行shell的。              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

583

帖子

0

粉丝