【问题标题】:Portable bourne shell script without using functions of modern shells as bash, ksh, zsh etc [closed]便携式 bourne shell 脚本,不使用现代 shell 的功能,如 bash、ksh、zsh 等 [关闭]
【发布时间】:2014-05-16 19:50:21
【问题描述】:

首先,我要感谢所有帮助我解决这个问题的人。我明天有考试,我必须为考试准备这个脚本。我对 linux 和那些 bourne shell 脚本真的很陌生。

我的项目应该是一个可移植的 bourne shell 脚本,它会在目录中扫描以下文件:header.txtfooter.txtcontent.txt。应读取文件的内容,但忽略以# 开头的行,此内容应用于生成具有以下页眉、页脚和内容的 HTML 页面。该文件可以包含任何文本和/或 HTML 代码,但不能包含 head 和 body 标记。扫描目录时,脚本必须将文件(header.txtfooter.txtcontent.txt)的最后更改日期与 HTML 页面的最后更改日期(如果您已经有)进行比较,并且如果文件的最后编辑日期比 HTML 页面上的日期新,则脚本应该生成一个包含最新内容的新 HTML 页面。

伙计们非常感谢你们,因为这对我来说非常重要。请帮我完成这件事。

非常感谢!

【问题讨论】:

  • 各位,请不要对我的问题投反对票...请帮我解决这个问题,或者只是给我一些资源,我可以从中找到示例或有关如何执行此操作的信息。请这是非常重要的......
  • 如果您想找人为您做考试,请尝试 freelancer.com 或类似网站。
  • 不,伙计,我想自己做我只是被截止日期困住了。我只是想要“开始踢”一些资源,一些关于阅读内容的指导,以及帮助我​​编写这个脚本的内容。
  • ...但这不是 StackOverflow 的用途。我们在这里建立一个可重复使用的特定技术问题与答案配对的知识库。这不是一个特定的、可重复使用的问题(除非其他人恰好在做同样的考试)。
  • 我已经自己完成了 user3374657 在这里回答的事情并进行了一些谷歌搜索。我知道发布这样的问题是不对的,但我真的必须这样做。现在是凌晨 3 点,我还在电脑前,考试时间是早上 9 点。感谢您有机会在这里提问。

标签: linux shell ubuntu


【解决方案1】:

要删除以# 开头的行,试试这个:

grep -v "^#" file

删除#之前可能包含空格(或空白字符)的行:

grep -v "^[[:blank:]]*#" file

【讨论】:

  • 我以#开头的文件! /bin/sh 这是正确的吗?我发现我可以使用 find 功能来查找文件。这就是我写的: find /home/berchev/linux -iname 'header.txt' find /home/berchev/linux -iname 'footer.txt' find /home/berchev/linux -iname 'content.txt' 我该怎么做阅读那些文件的内容?
  • 我认为您可以在没有 find 的情况下很好地阅读文件,要获取文件的内容,请尝试cat /home/berchev/FILE.txt 或者,更好的@ 987654326@,第二个命令可以移植到任何linux安装,即使用户名不是berchev,如果你想将文件内容保存在变量中试试这个MYVAR=$(cat ~/linux/FILE.txt),是的,#!/bin/sh是正确的如果您想让它便携,请输入。
  • 谢谢,我必须找到文件,因为脚本需要扫描目录然后使用文件的内容,所以我必须扫描目录中的这些文件并阅读它们,然后将它们分配给变量,以便我可以将变量用于 HTML 页面。我想我必须为此使用 if 但是如果目录中存在这些文件以将其内容分配给变量,如何配置它
  • 要读取文件并删除注释行,多合一命令,试试这个:MYVAR=$(grep -v "^[[:blank:]]*#" ~/linux/FILE.txt),在这个例子中,你可以缩进 cmets(# 之前有空格和制表符)
  • 是的,这正是我使用的,不,这是我的脚本#! /bin/sh if [ -e ~/linux/header.txt ] 然后 HEADER=$(grep -v "^[[:blank:]]*#" ~/linux/header.txt) echo $HEADER else echo "找不到头文件" fi if [ -e ~/linux/content.txt ] then CONTENT=$(grep -v "^[[:blank:]]*#" ~/linux/content.txt) echo $CONTENT else echo "找不到内容文件" fi if [ -e ~/linux/footer.txt ] 然后 FOOTER=$(grep -v "^[[:blank:]]*#" ~/linux/footer.txt) echo $ FOOTER else echo "Footer file not found" fi 如何使用这个变量来生成一个已经放置了 head 和 body 标签的 html 页面?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-05
相关资源
最近更新 更多