【Shell】标准输入 read 和输出 echo

一、标准输入 read

shell 中通过 read 语句从键盘或文件的某一行文本中读入信息,并将内容赋给变量,多个变量之间用空格分隔。

read 变量1 变量2 ...

read 每次只能读取一行数据。

  • 把一行内容全部赋值给一个变量,并直接通过 echo 输出。
$ read name
 jjing
$ echo $name
 jjing
 
$ read name
 jjing jj
$ echo $name
 jjing jj
  • 一次赋值多个变量,多个值用空格分隔。
$ read name1 name2
 jjing tao
$ echo $name1
 jjing
$ echo $name2
 tao
  • 赋值多个变量时,当值多于变量名时,最后多余的内容全部赋值给最后一个变量。
$ read name1 name2
 jjing tao yayaa
$ echo $name1
 jjing
$ echo $name2
 tao yayaa

二、标准输出 echo

使用 echo 命令可以输出文本字符串、变量、表达式、命令等。

直接在 echo 后面加上要输出的内容即可。

命令 输出内容 说明
echo “abcd1234” abcd1234 输出一个普通字符串,默认在结尾包含换行符,光标定位在下一
在Python中,你可以使用内置的`subprocess`模块来运行shell命令,并处理命令的输入输出。`subprocess`提供了一种强大且灵活的方式来执行系统命令,包括获取命令的输出(stdout)和错误输出(stderr)。 以下是一个简单的例子,展示了如何执行shell命令并接收其输入输出: ```python import subprocess # 命令及其输入(可选) command = 'echo "Hello from shell!"' input_data = 'Your input here' # 只适用于支持输入的命令,如bash的read -p # 创建子进程 process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE) # 如果有输入数据,写入子进程 if input_data: process.stdin.write(input_data.encode()) # 对字符串进行编码,因为子进程需要字节流 process.stdin.flush() # 确保数据被立即发送 # 获取输出和错误信息 stdout, stderr = process.communicate() # 输出是bytes类型,可能需要解码为str output_str = stdout.decode('utf-8') error_str = stderr.decode('utf-8') if stderr else '' print(f"Output: {output_str}") print(f"Error: {error_str}") ``` 在这个例子中,`communicate()`方法会阻塞直到命令完成,返回的是一个包含命令标准输出标准错误的元组。如果需要交互式地获取命令的输入,可以使用`stdin.write()`方法。 相关问题: 1. `subprocess.Popen`创建了一个什么对象? 2. `stdout=PIPE`和`stdin=PIPE`参数的作用是什么? 3. 如何处理`communicate()`方法返回的输出和错误?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值