Bash将一个函数变量传递给其他函数

时间:2017-12-06 23:33:09

标签: bash function shell

我有两个函数,第一个调用用法-file来从用户那里获取文件。它有很长的文件名,所以这个功能剥离了我需要的东西。 例如: ./test.sh -file some_example_list_data2017.csv它给了我data2017(这就是我想要的)。

function get_file_name() {
    filename=$1
    if [ -f $filename ]
    then 
        echo "${filename}" | awk (make long filename short)
    else 
        echo "${filename} not found"
    fi
}

第二个功能:我想在这里传递上面的$filename,因为它已经有了完整的文件名。我想在屏幕上只显示一些内容。但这次使用 ./test.sh -display someexample_list_data2017.csv

function parse_above_file() {
    // here I want get_file_name and display the content
    filename=$1
    echo ${filename} | awk/sed/egrep (do something and display)
}

但第二个功能是没有传递文件名。当它运行脚本时,它只会打印任何内容。

1 个答案:

答案 0 :(得分:0)

使用此代码,

function get_file_name() {
    filename=$1
    echo "$filename"
    }
function parse_above_file() {
    filename=$1
    echo "$filename"
    filename="bli"
    get_file_name "$filename"
    exit
    }
filename="bla"
get_file_name $filename
filename="ble"
parse_above_file $filename

我得到了这个输出:

bla
ble
bli