Unix Shell 脚本任务。文件作为参数?

Unix Shell 脚本任务。文件作为参数?

我遇到了这个问题。我还是个新手,我不知道如何将文件作为参数。

有一个班级的出勤名单(class.dat- 姓名;海王星代码)。在夏季结束时,他们还会举办盛大的派对,邀请宾客。派对的参与者在文件party.txt(姓名;海王星代码)中给出。创建一个脚本together.sh,其中包含姓名 fromclass.dat和 from party.dat,但每个姓名仅出现一次!脚本的参数应该是两个文件名。

答案1

Bash 脚本的命令行参数存储在特殊变量中,$1第一个以空格分隔的参数是这个特殊变量,$2第二个也是这个特殊变量,依此类推。

也可以看看TLDP 高级 Bash 脚本指南 - 4.4. 特殊变量类型(部分Positional parameters)或man bash(部分Parameters)。

您应该记住始终将变量放在双引号内(如"$1"),以避免如果变量包含空格则将它们拆分。

以下是一个例子:

#!/bin/bash

echo "The first file, $1, starts with these lines:"
head "$1"

echo "The second file, $2, ends with these lines:"
tail "$2"

为了从两个文件中提取所有独特的行,请查看sort命令(类型man sort,尤其是它的-u选项……

相关内容