我有一个只有一列的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
。
答案 0 :(得分:1)
如果您在描绘文件时那是
/bin/bash <yourfile>
文件名结尾的确无关紧要。你也可以坚持:
#!/bin/bash
在顶部,提供运行权限(chmod u+x yourfile
)并将其运行为:
./yourfile
您的CSV文件实际上是一个bash脚本。
修改强>
在编辑之后,您可以在当前bash shell中获取csv
,以便您可以访问该函数:
. yourfile
我认为第二种方法(添加shebang并直接运行文件)也可以工作 - 如果没有,请尝试将函数放在.bashrc
而不是配置文件中。更多解决方案 - 在CSV顶部获取配置文件,在顶部定义功能等