#!/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
。
大概。