这些天。我正在学习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
答案 0 :(得分:3)
-l开关正在计算指定文件中的行数 在你的情况下,它计算titles文件中的行数并将其设置为num_titles变量(并计算由tracks_file变量指定的文件中的行数并将值设置为num_track变量)
你可以试试 wc -l 在命令行上查看它打印出来的值
答案 1 :(得分:3)
首先set
设置一个环境变量。
根据其联机帮助页使用语法set var = value
或set 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 handbook和Advanced Bash-Scripting Guide。