CTDP linux 程序员手册 (4.8) 一个管理和读文件的例子

2024-02-26 21:18

本文主要是介绍CTDP linux 程序员手册 (4.8) 一个管理和读文件的例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

一个管理和读文件的例子
#!/bin/bash
#
# printst     这个文件打印在"/var/spool/spooldata"目录中的所有子目录中的文件 
#               它循环遍历每一个子目录, 查找所有具有粘滞位的文件,如果有粘滞
#               位,这个文件将被发送到打印机,并且粘滞位被清除.
#               文件被发送到哪一个打印机,取决于目录名和配置文件
#
if [ -d /var/spool/spooldata ]; then             # 如果spool子目录存在
   for dfile in /var/spool/spooldata/*; do    # 遍历在spooldata内的所有文件
      if [ -d $dfile ]; then                          # 如果是一个子目录
         fname=${dfile#/var/spool/spooldata/} # 参数扩展获得不带路径的文件名
         # 根据子目录的名称从配置文件中得到打印机的名称
         prname=`grep -i ${fname} /usr/local/etc/spooldata.conf | cut -f2 -d" "` 
         for ifile in $dfile/*; do      # 遍历子目录中的所有文件
            if [ -k $ifile ]; then    # 如果这个文件带有粘滞位
               lpr -P$prname $ifile # 打印这个文件
               chmod -t $ifile          # 清除粘滞位
            fi
         done
      fi
   done
fi

<script type="text/javascript"></script>

将这个文件放到你得计划表中,每一分钟执行一次或者添加以下的语句:
while [ 1 ]
do
   sleep 60
   .
   .
done
注意这个文件当中的以下几点:
1.       在变量 prname 被设置的地方 , 输出是带有 ` 而不是 '. 使用 ' 将不能工作 !!! bash man 的关于参数扩展中有相应的文档 . 也可以使用 $(command) 
2.       参数扩展用于提取打印机的名称 :
o        符号 $ 被用于参数扩展
o        符号 {} 用于分割参数扩展
o        第一个字符串或变量是参数第二个是扩展元素
o        如果用 # 分离元素中的参数 , 元素当中不能匹配参数开始的部分将被保留 .
o        如果使用 % , 元素当中不能匹配参数末尾的部分将被保留 .
3.       如果你用 DOS or windows 编写这个文件 , 请确认所有的回车符从这个脚本文件中都被去掉否则可能它不会正常运行 . Linux 在文件当中不使用回车符并且许多带有回车符的程序都不能正常运行 .
在目录 /var/spool,带有目录名的 spooldata.conf 配置文件的例子, 每一行的第二个参数是打印机的名称.
print1 lp1
print2 lp2
print3 lp3

 
<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

这篇关于CTDP linux 程序员手册 (4.8) 一个管理和读文件的例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750193

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔