set $(wc -l $ title_file)在shell中的含义是什么?

时间:2012-03-08 05:57:29

标签: linux shell

这些天。我正在学习shell脚本以获得乐趣。当我阅读手册的示例时:

set $(wc -l $title_file)
  num_titles=$1
  set $(wc -l $tracks_file)
  num_tracks=$1

我简单地了解命令set,指定$ 1并将$ 1的值设置为num_titles。 但是,我不知道为什么使用-l作为命令的选项,set.And顺便说一下,任何人都可以解释它的整个故事吗?thx

2 个答案:

答案 0 :(得分:3)

-l开关正在计算指定文件中的行数 在你的情况下,它计算titles文件中的行数并将其设置为num_titles变量(并计算由tracks_file变量指定的文件中的行数并将值设置为num_track变量)

你可以试试 wc -l 在命令行上查看它打印出来的值

答案 1 :(得分:3)

首先set设置一个环境变量。 根据其联机帮助页使用语法set var = valueset var [n] = word,查看联机帮助页类型man set

在这种情况下,set使用第二种语法来生成$1 = $(wc -1 $titlefile),然后将num_titles设置为$ 1作为常规变量,因为使用了语法。

wc是wordcount命令,在文件中显示行,字符和单词。

wc -l告诉wc根据wc联机帮助页按行计算,以查看联机帮助页类型man wc

有关详细信息,请参阅Linux Shell Scripting Tutorial A Beginner's handbookAdvanced Bash-Scripting Guide