Linux 使用文件描述符标识每个文件对象。文件描述符是一个非负整数,可以唯一地标识会话中打开的文件。每个进程中最多可以有9个打开文件的描述符。Linux 标准文件描述符文件描述符 缩写 描述
0 STDIN 标准输入
1 STDOUT 标准输出
2 STDERR 标准错误STDIN 文件描述符引用 shell 的标准输入。
转载
2024-05-22 12:32:07
500阅读
数据的展示理解输入与输出标准文件描述符STDIN(标准输入)STDOUT(标准输出)STDERR(标准错误)重定向错误只重定向错误重定向错误和数据在shell脚本中重定向输出临时重定向永久重定向在shell脚本中重定向输入创建自己的重定向创建输出文件描述符重定向文件描述符创建输入文件描述符创建读写文件描述符关闭文件描述符列出打开的文件描述符阻止命令输出创建临时文件创建本地临时文件在/tmp 目录
转载
2024-04-22 18:50:18
1134阅读
这里我们主要讲使用expect实现自动输入功能:安装:CentOS下安装命令,如下:yum install expect开始之前的一个简单实例:#!/usr/bin/expect
spawn ssh root@1.1.1.1
expect "*password:"
send "123\r"
expect "*#"
interactExpect是一个用来处理交互的命令。我们可以使用exp
转载
2024-05-09 10:41:36
308阅读
平时在控制台输入指令如:sudo、ssh、ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密码呢?下面总结三种实现方法:一、重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码shell用重定向作为标准输入的用法是:cmd<<delimiter ,
转载
2023-11-23 21:41:33
0阅读
Shell 脚本自动输入密码的三种方式 注意,如果创建.sh文件后不可以执行,请执行sudo chmod 755 文件名.sh来修改权限。方式一使用 echo “密码” | (管道符)使用场景: sudo 命令在使用普通用户执行 root 命令时有时候会需要输入密码,并且在输入密码后一段时间不需要再次输入(但是不影响),这时候可以使用echo "密码" | sudo 命令比如我需要一键清空服务器,
转载
2023-11-21 17:47:52
31阅读
特殊变量一般变量比较简单哈,与Java、C/C++不一样的地方在于不需要定义,直接使用即可。例如:#!/bin/bash
var= "wojiushimogui"
echo ${var}需要注意的两点:1、变量和等号之间不能有空格。2、使用变量的时候我们只需要在变量前面加上一个美元符号$即可。好的编程风格为:将变量用大括号括起来。例如:${var}相比$var 在风格上就更好。这篇博文主要介绍下特
每条命令后如果不加&的话就是依次一行一行的顺序执行,只有前面一行执行完成后再执行下一行,事实上还有很多特殊符号可用来分隔单个的命令:分号(;)、管道(|)、&、逻辑AND (&&),还有逻辑OR (||)。对于每一个读取的管道,Shell都回将命令分割, 命令执行操作符 多条命令可以在一行中出现。它们可以从左到右顺序执行。此时,各条命令之间应以分号( ;
转载
2024-03-27 21:32:49
176阅读
在Linux操作系统中,Shell脚本是一种强大的工具,可以帮助用户自动化执行一系列命令。在Shell脚本中,经常需要用户输入一些参数或数据来指导脚本的执行。而在Linux中使用红帽发行版的操作系统时,输入这些参数或数据的方式也有一些特殊的技巧。
在Linux中,有很多种方式可以从用户那里获取输入数据,其中最简单的方式就是使用read命令。read命令可以从标准输入中读取用户输入的数据,并将其赋
原创
2024-05-21 10:15:14
98阅读
前言: ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.本文讲解了两种方式, 一种借助expect脚本, 一种借助sshpass来实现.*) 借助expect脚本来实现1. expect不是系统自带的工具, 需要安装yum install expe
转载
2023-07-09 21:46:39
1208阅读
#!/bin/bashecho -e "It is a test \n"echo It is a testecho -e "\"It is a test\""read nameecho "$name is a good man"echo -e "OK! \c"echo "It is a test"echo '$name\"
原创
2022-06-06 17:04:26
1192阅读
Shell 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
算术运算符
关系运算符
布尔运算符
逻辑运算符
字符串运算符
文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
原创
精选
2023-11-08 08:43:35
360阅读
点赞
1、数值格式:test "num1" opr "num2"[ "num1" opr "num2" ]opr 取值:相等:-eq不等:-ne大于:-gt小于:-lt 【l是字母L的小写】小于等于:-le大于等于:-ge2、字符串格式:[ str1 opr str2][ opr str ]opr取值:相...
转载
2015-05-16 13:07:00
209阅读
2评论
输入输出的操作使用#!/bin/bash
# 输入/输出重定向
# 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
# 需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错
转载
2024-04-17 14:29:02
323阅读
bash shell 提供了一些不同的方法从用户处获取数据,这些方法包括命令行参数、命令行选项和直接读取键盘输入。 命令行参数bash shell 将在命令行中输入的所有参数赋值给一些特殊变量,称为位置参数,通过标准数据表示,其中$0为程序名称,$1为第一个参数,$2为第二个参数,依此类推,直到$9为第九个参数。在第九个变量之后,必须使用大括号将变量括起来,如${10}。示例#!/bin
转载
2024-04-28 11:08:03
1616阅读
echo '-e' 回车换行 ‘-n’ 回车不换行eg. 3.2.1 readread语句可以从键盘或文件的某一行文本中读入信息,并将其赋给一个变量read var1 var2 ... 如果只指定了一个变量,那么read将会把所有的输入赋给该变量,知道遇到第一个文件结束符或回车;如果给出了多个变量,它们按顺序分别被赋予不同的变量。shell将用空格作为变量之间的分隔
转载
2024-03-07 15:21:00
249阅读
为啥要加密shell脚本以我个人的需求为例,我要做一个自动远程登录的脚本,每次手动输密码太慢,而且输的多了密码也容易泄露;直接把密码写在脚本里,快确实是快,但是安全性让人无法忍受,写脚本的时候都有可能被过路的不小心看到密码,这就太蛋疼了。 最终解法就是,把密码写在脚本里,作为参数传给下一个脚本让其用来登录,而保存密码的脚本,使用某种手段加密,令其不可读但是可执行。 加密方法介绍和实战经
转载
2024-01-08 15:01:26
16阅读
命令执行顺序就是指命令执行的优先级,就像四则运算的优先级bash shell运行命令本来是从左往右依次执行,但期间会遇到种种潜规则把命令查分成单个的命令单词
shell先把拿到手的命令行拆分成一段一段的单词
展开别名突然遇到了一个别名,就去查找alias指向哪里?找到了把对应的内容拿进来摆好展开大括号{}的声明继续往下看,突然遇到了大括号声明{},里边可能是通配符、代码块之类的鬼东西,计算出结果
转载
2024-07-04 17:09:59
66阅读
while do done, until do done ( 不定循环)一般来说,不定循环最常见的就是底下这两种状态了:while [ condition ] <==中括号内的状态就是判断式
do <==do 是循环的开始!
程序段落
done <==done 是循环的结束while 的中文是『当…时』,所以,这种方式说的是『当 condition 条件成立时,就进行循环,直到
转载
2024-05-29 20:30:13
195阅读
原创
2021-11-22 17:21:34
7059阅读
前言命令行下常用的串口连接工具有 screen、minicom等。实际生产测试需求中,常常有串口连通性测试,其对应的最简单的测试方法即:「调用非交互式串口工具登录串口并发送(命令)接收数据(命令返回)」。这种情况下,screen、minicom需交互模式下使用的工具已不适用(不易使用expect实现,而且需要额外安装工具)。根据测试方法可以知道,实际测试工具所需具备功能并不复杂,所以通常我们使用