【发布时间】:2017-12-06 23:33:09
【问题描述】:
我有两个函数,第一个调用用法-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)
}
但是第二个函数没有传递文件名。当它运行脚本时,它什么也不打印。
【问题讨论】:
-
在获得短名称后,您不想在
get_file_name中执行此操作吗:if ... then parse_above_file "$(echo "${filename}" | awk makeshort ... )"? -
我想传递 get_file_name() 获取后保存的任何文件名变量。并在 parse_above_file() 使用相同的数据($filename 具有)打印/做某事
-
这可能是您调用函数的方式:
parse_above_file "$(get_file_name "$full_filename")"- 您将一个函数get_file_name的结果传递给另一个函数parse_above_file。 -
完成了。终端什么也不做,只是在那里等待。谢谢你
-
你可能想给我们更多的代码。