使用用户输入运行顺序进程

使用用户输入运行顺序进程
#!/usr/bin/env bash
tt=0
one(){
    echo "Please enter some input: "
    read input_variable
    echo "You entered: $input_variable"
    tt=$input_variable
}
tho(){
    if $tt >0; then
    {
        for i in {1..100000}
        do
          echo $i $i
          sleep 2s
        done
    }
    fi
}
(one ; tho) &

这只是我想做的一个小例子。用户需要时间来提供输入,同时tho()开始运行。我想tho()在用户提供输入变量后运行,可能是在 2 天后。任何建议都会很棒!

答案1

读取用户输入的部分需要在前台运行。只有前台进程可以从终端读取数据。

if 条件的语法没有意义:$tt >0运行名称位于变量tt¹ 中的命令并将其输出重定向到名为0.要比较数字,请使用[ … ]条件表达式语法或((…))算术表达式语法。

if 语句中的大括号没有用:then … fi已经创建了相同的分组。

{1..100000}扩展到100000字,然后一一处理。要使循环运行 100000 次,请使用循环计数器。

每 2 秒打印一行对我来说毫无意义,但由于我不知道你想做什么,所以我会保留它。

#!/bin/bash
one () {
    echo "Please enter some input: "
    read tt
    echo "You entered: $tt"
}
tho () {
    if [ "$tt" -gt 0 ]; then
        for ((i=0; i<=100000; i++)); do
          echo $i $i
          sleep 2s
        done
    fi
}
one
tho

如果希望该tho部分在后台运行,请&在后面添加tho

大概

相关内容