面试题答案
一键面试1. 使用管道(Pipe)
管道是一种简单而常用的进程间通信方式,它允许将一个进程的标准输出连接到另一个进程的标准输入。 示例代码:
# 第一个脚本,生成数据
echo "Hello, this is data from the first process" >&1 | \
# 第二个脚本,接收数据
while read line; do
echo "Received: $line"
done
2. 使用临时文件
通过在文件系统中创建临时文件,一个进程可以写入数据,另一个进程可以读取数据。 示例代码:
# 创建临时文件
temp_file=$(mktemp)
# 第一个脚本,写入数据到临时文件
echo "Some data to share" > $temp_file
# 第二个脚本,从临时文件读取数据
data=$(cat $temp_file)
echo "Received: $data"
# 删除临时文件
rm $temp_file
3. 使用命名管道(FIFO)
命名管道是一种特殊类型的文件,它在文件系统中有一个名称,允许不相关的进程进行通信。 示例代码:
# 创建命名管道
mkfifo my_fifo
# 第一个脚本,写入命名管道
echo "Data for IPC" > my_fifo &
# 第二个脚本,从命名管道读取
while read line; do
echo "Received: $line"
done < my_fifo
# 删除命名管道
rm my_fifo