Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在csv文件(bash/Mac)中执行命令_Bash_Macos_Csv - Fatal编程技术网

在csv文件(bash/Mac)中执行命令

在csv文件(bash/Mac)中执行命令,bash,macos,csv,Bash,Macos,Csv,我有一个csv文件,它在命令行中包含一系列命令。我只能bash这个csv文件,但是命令将在同一个终端中顺序执行。有没有办法在一个单独的终端中执行这些命令中的每一个,以便它们并行执行 例如: 就像: python args1 python args2 ... python argsn 您可以在后台运行命令,如 run-command & run-some-other-command & etc & 这是您可以使用的吗?您可以在后台运行命令,如 run-command &

我有一个
csv
文件,它在命令行中包含一系列命令。我只能
bash
这个csv文件,但是命令将在同一个终端中顺序执行。有没有办法在一个单独的终端中执行这些命令中的每一个,以便它们并行执行

例如:

就像:

python args1
python args2
...
python argsn

您可以在后台运行命令,如

run-command &
run-some-other-command &
etc &

这是您可以使用的吗?

您可以在后台运行命令,如

run-command &
run-some-other-command &
etc &

这是您可以使用的吗?

您基本上已经有了一个shell脚本。唯一的区别是,您希望将每一行作为单独的命令运行,而不是将其作为一个脚本运行。如何打开新终端在某种程度上取决于操作系统,但我们假设您只需要使用
xterm
命令。以下内容将把脚本
commands.csv
(或任何名称)视为数据文件

while IFS= read -r cmdline; do
    xterm -e sh -c "$cmdline" &
done < commands.csv
而IFS=read-r cmdline;做
xterm-e sh-c“$cmdline”&
完成
您基本上已经有了一个shell脚本。唯一的区别是,您希望将每一行作为单独的命令运行,而不是将其作为一个脚本运行。如何打开新终端在某种程度上取决于操作系统,但我们假设您只需要使用
xterm
命令。以下内容将把脚本
commands.csv
(或任何名称)视为数据文件

while IFS= read -r cmdline; do
    xterm -e sh -c "$cmdline" &
done < commands.csv
而IFS=read-r cmdline;做
xterm-e sh-c“$cmdline”&
完成
如果你想在Mac上进行任何严肃的软件开发,我建议你安装homebrew,因为苹果不提供软件包管理器,但提供大多数人使用的所有工具的古老版本。。。Python、sed、PHP、Perl、awk、find、grep、make、git

一旦您拥有了自制,我建议您使用GNU Parallel安装:

brew install parallel
拥有GNU Parallel后,您可以与以下命令并行运行:

parallel --dry-run -a commands.csv
或者,您可能希望用名称标记这些行:

parallel --tag -a commands.csv
如果希望一次运行8,请添加
-j8
。如果您想要估计到达时间(他们应该完成的时间),请添加
--eta
,依此类推


顺便说一句,您可以寻找其他工具,如Intel TBB,具有:

brew search tbb
或pango,带有:

brew search pango

如果你想在Mac上进行任何严肃的软件开发,我建议你安装homebrew,因为苹果不提供软件包管理器,但提供大多数人使用的所有工具的古老版本。。。Python、sed、PHP、Perl、awk、find、grep、make、git

一旦您拥有了自制,我建议您使用GNU Parallel安装:

brew install parallel
拥有GNU Parallel后,您可以与以下命令并行运行:

parallel --dry-run -a commands.csv
或者,您可能希望用名称标记这些行:

parallel --tag -a commands.csv
如果希望一次运行8,请添加
-j8
。如果您想要估计到达时间(他们应该完成的时间),请添加
--eta
,依此类推


顺便说一句,您可以寻找其他工具,如Intel TBB,具有:

brew search tbb
或pango,带有:

brew search pango


你可以把每个命令放在后台吗?还有一个问题需要检查:您的CSV文件到底是什么样子的?一般来说,您不能简单地执行它,因为字段分隔符不应被视为参数的一部分。这是一个CSV文件吗?嗯?为什么要将bash命令与
csv
混合使用?可以将每个命令放在后台?还有一个问题需要检查:您的CSV文件到底是什么样子的?一般来说,您不能简单地执行它,因为字段分隔符不应被视为参数的一部分。这是一个CSV文件吗?嗯?为什么将bash命令与
csv
混合在一起?(刚刚注意到您标记了问题
osx
;检查如何使用标准终端应用程序而不是
xterm
)是的。不过,根据文件中的行,将有一些棘手的引用问题需要解决。谢谢你的回答,我将尝试实现它。(刚刚注意到你标记了问题
osx
;检查如何使用标准终端应用程序而不是
xterm
)是的。不过,根据文件中的行,将有一些棘手的引用问题需要解决。谢谢你的回答,我将尝试实现它。我的荣幸。祝你的项目好运,记住问题和答案在StackOverflow上是免费的,所以如果你卡住了,请回来。它应该向你显示它将执行的命令。如果它们看起来正确,您应该再次运行,但删除“干运行”,输出可能会被缓冲。作业需要很长时间吗?您可以尝试添加
--行缓冲区
--解组
,以更快地获得输出。您还可以添加
--job log YourLog.txt
以获取日志文件。我很乐意为您效劳。祝你的项目好运,记住问题和答案在StackOverflow上是免费的,所以如果你卡住了,请回来。它应该向你显示它将执行的命令。如果它们看起来正确,您应该再次运行,但删除“干运行”,输出可能会被缓冲。作业需要很长时间吗?您可以尝试添加
--行缓冲区
--解组
,以更快地获得输出。您还可以添加
--job log YourLog.txt
以获取日志文件。