1. Learn
  2. /
  3. 课程
  4. /
  5. Shell 入门

Connected

道练习

如何将文件名传递给脚本?

处理特定文件的脚本可以作为您已完成工作的记录,但能处理任意文件的脚本更有用。 为此,您可以使用特殊表达式 $@(美元符号紧跟 at 符号),表示"传给脚本的所有命令行参数"。

例如,若 unique-lines.sh 中包含 sort $@ | uniq,当您运行:

bash unique-lines.sh seasonal/summer.csv

shell 会将 $@ 替换为 seasonal/summer.csv 并处理一个文件。若您运行:

bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv

它会处理两个数据文件,依此类推。

提示:在 Nano 中保存您编写的内容,按 Ctrl + O 写出文件,回车确认文件名,然后按 Ctrl + X 退出编辑器。

说明 1/2

undefined XP
  • 1

    使用 Nano 编辑脚本 count-records.sh,将两个 ____ 占位符分别填写为 $@ 和 -l(字母),以便统计一个或多个文件的行数,并排除每个文件的第一行。

  • 2

    在 seasonal/*.csv 上运行 count-records.sh,并使用 > 将输出重定向到 num-records.out。