如何在Linux中创建一次执行多个任务的bash脚本

时间:2017-03-18 01:38:57

标签: linux bash

我想创建一个包含以下内容的bash脚本:

  1. I / O重定向
  2. 符号链接
  3. 外卡
  4. 将用户添加到多个组。
  5. 我知道如何执行命令来单独创建每个命令,但我无法弄清楚如何创建一个可以同时执行所有这些命令的bash脚本。有谁可以帮助我吗?我将不胜感激。

    var cmd = "python -u python_test.py"
    

2 个答案:

答案 0 :(得分:3)

将您想要做的每件事放在一个函数中,然后执行每个函数的执行:

do_redirection_stuff() {
    # your stuff here
}

do_wild_card_stuff() {
    # your stuff here
}

do_symbolic_link_stuff() {
    # kool stuff
}

do_parallel_tasks() {
    do_redirection_stuff &
    do_wild_card_stuff &
    do_symbolic_link_stuff &

    wait # For all of them to finish
}

do_parallel_tasks

更新(代码已添加到OP的问题中)

您似乎对如何使用shell重定向感到困惑。在您提供的代码中,您应该只是串行执行每个命令。同样,这些命令都不会长时间阻塞,因此并行执行它们是过度的。

#!/bin/bash
cd /home
mkdir testdir
cd testdir
touch testfile.txt
ln -s /etc/passwd symboliclink
cd ..
mkdir things
cp -rf /testdir /things
usermod -aG admins,hr,payroll test

答案 1 :(得分:0)

我昨天了解了一个名为parallel的工具:https://www.gnu.org/software/parallel/

它可以很容易地并行运行任意数量的任务,并对它们的输出进行排序。花一些时间来浏览一下教程,它会花费很多时间!