运行 oneliner 后台命令
Run command in background in oneliner
我不确定这些类型的语句叫什么,但基本上我正在尝试这样做:
[ "string" = "somethingelse" ] && dofuncwhentrue "param" || dofuncwhenfalse "param" &
所以这两个函数都应该在后台 运行,但我不确定将 & 放在哪里才能实现这一点。
谢谢!
如果您尝试单行代码的简单版本,您会看到这种行为。
/bin/true && sleep 10 || sleep 10 &
/bin/false && sleep 10 || sleep 10 &
sleep 10 && sleep 10 || sleep 10 &
在所有情况下,您会看到 bash
立即将所有内容(包括测试)生成到后台。
如果你真的想在前台 运行 测试,你可以用括号来构造行。
sleep 10 && (sleep 10 &) || (sleep 10 &)
正如 Inian 在评论中指出的那样,使用 if
会更具可读性,但这是一个有趣的问题!
我不确定这些类型的语句叫什么,但基本上我正在尝试这样做:
[ "string" = "somethingelse" ] && dofuncwhentrue "param" || dofuncwhenfalse "param" &
所以这两个函数都应该在后台 运行,但我不确定将 & 放在哪里才能实现这一点。
谢谢!
如果您尝试单行代码的简单版本,您会看到这种行为。
/bin/true && sleep 10 || sleep 10 &
/bin/false && sleep 10 || sleep 10 &
sleep 10 && sleep 10 || sleep 10 &
在所有情况下,您会看到 bash
立即将所有内容(包括测试)生成到后台。
如果你真的想在前台 运行 测试,你可以用括号来构造行。
sleep 10 && (sleep 10 &) || (sleep 10 &)
正如 Inian 在评论中指出的那样,使用 if
会更具可读性,但这是一个有趣的问题!