我是 UNIX 的新手,不知道如何从文件中访问某个数字。以下是我输入 quota -v 时得到的结果。
我需要编写一个脚本来检查并确保我是否低于配额,如果没有则显示警告消息。因此,我想从该文件中访问“使用”数字和“限制”数字,并使用“if”语句进行比较。有人可以告诉我如何访问那个特定位置的数据吗? (例如:该文件的“使用”区域为 205539,“限制”区域为 200000)。任何帮助将不胜感激。
最佳答案
在 UNIX shell 中,通常使用执行非常小的任务的小工具,并将它们组合起来组装 anwser。基本系统为您提供了多种工具,可以对文本执行各种基本操作。 例如,您可以像这样运行配额:
quota | grep undergrad1
这将运行配额,并将其输出传递给 grep,后者的工作是返回包含其参数的行。这将只返回 undergrad1 行。 然后你可以将该行提供给工具,这些工具会将其分解成列。执行此操作的主要工具称为剪切。 Cut 采用分隔符和字段规范 - 或者,字符计数。 在您的情况下,您可能希望在将 grep 的输出传递给 cut 之前对其进行清洗,以免依赖于字符数。如果 quota 使用制表符来分隔列,那么您可以将其按原样进行切割:
quota | grep undergrad1 | cut -d "\t" -f 3
...但是如果它使用可变数量的空格,那么您可能希望首先使用 tr 及其 -s 选项将它们折叠成一个:
quota | grep undergrad1 | tr -s " " | cut -d " " -f 3
请注意,我们现在要求 cut 使用空格而不是制表符作为分隔符。
有了这个,您应该能够组装一个脚本来执行您想要的操作。更进一步,如果您希望在名称相同但顺序不同或任何适合范围的系统上运行,您可以在第一行 grep "Filesystem"并尝试在返回它们之前找出列索引你的脚本。
关于linux - 如何在 UNIX 中读取一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920947/