如何读取脚本中要使用的文件名?

时间:2015-09-11 21:02:28

标签: bash grep ubuntu-14.04

我想知道如何制作简短的bash脚本来读取另一个文件并使用它以正确的顺序吐出某些文本行

我希望它能像这样工作。 filename可以是任何文件:

    myscript.bash < filename

我在myscript.bash中写的内容:

    #!/bin/bash
    ############################################################################
    #for greping info of scf files
    #
    #
    #
    ############################################################################
    read filename
    val1=eval grep string1 filename
    val2=eval grep string2 filename
    echo 'VAL1' $val1
    echo 'VAL2' $val2

在这种情况下,“阅读”是否合适?文件名可以是我想要myscript.bash读取的任何内容,以便我可以从文件中获取信息

1 个答案:

答案 0 :(得分:4)

如果你想要文件名,你需要把它作为脚本的参数,而不是使用重定向:

myscript.bash filename

在脚本中,您使用$1$2等来访问参数,因此它将是:

filename=$1

然后你做

val1=$(grep string1 "$filename")
val2=$(grep string2 "$filename")
echo 'VAL1' "$val1"
echo 'VAL2' "$val2"