执行csv文件中包含的bash命令

时间:2017-10-21 17:31:09

标签: bash macos

我有一个只有一列的csv文件,每行包含一个自定义bash函数,如下所示:

my_func 1 a
my_func 1 b
my_func 1 c

其中my_func函数包含在~/.bash_profile中,我可以在bash shell中正常运行。 我想要做的是顺序在bash shell中运行上述命令中的每一个。有没有一种简单的方法(我想避免在bash shell中复制/粘贴每个命令)?

修改:当我尝试bash filename.csv时,我收到以下错误:line1: my_func: command not found

1 个答案:

答案 0 :(得分:1)

如果您在描绘文件时那是

/bin/bash <yourfile>

文件名结尾的确无关紧要。你也可以坚持:

#!/bin/bash

在顶部,提供运行权限(chmod u+x yourfile)并将其运行为:

./yourfile

您的CSV文件实际上是一个bash脚本。

修改

在编辑之后,您可以在当前bash shell中获取csv,以便您可以访问该函数:

. yourfile

我认为第二种方法(添加shebang并直接运行文件)也可以工作 - 如果没有,请尝试将函数放在.bashrc而不是配置文件中。更多解决方案 - 在CSV顶部获取配置文件,在顶部定义功能等