Linux scripting: Passing parameters

2019-09-04 20:03发布

I'm new to scripting and need a lot of help understanding how to load in a text file that will be passed in by a parameter. I'm afraid that you'll have to really dumb down your answers. Please explain like I am a 10 year old!

For example, how does one write a script that accepts two parameters, a file path and an integer.

Also how do you run the script? would you just call script.sh -f data.txt

3条回答
叼着烟拽天下
2楼-- · 2019-09-04 20:32

This page of the GNU AWK (gawk) manual describes how to process options as getopt would.

Include the function shown on that page in your script.

查看更多
相关推荐>>
3楼-- · 2019-09-04 20:39

Could you explain your requirement a bit in detail?

I assume you are looking to extract the Nth column from a given file. You don't need to parse command-line parameters within AWK, instead just pass them from sh(1) itself.

# foo.sh
awk "{ print $"$1" }" $2

Here I'm escaping out of AWK to get the first argument which is the position number. If you find that too confusing you can manipulate ARGC, ARGV. Read awk(1).

Hope that helps.

查看更多
SAY GOODBYE
4楼-- · 2019-09-04 20:47

You can do this by manipulating ARGC and ARGV to extract your integer from the argument list in the BEGIN block. You can put your script in a text file with the first line being #!/usr/bin/awk -f and then make the file executable with chmod a+x.

查看更多
登录 后发表回答