linux - 在脚本中写入时,jobs -l 不会将输出打印到文件中
问题描述
我希望将“jobs -l”的输出写入文件,并且将 jobs -l 命令写入 shell 脚本程序中
“jobs -l”命令在终端中简单地给出时有效,即使它在终端中简单地给出但不在程序内时打印到文件“jobs -l >file.txt”。
./program.sh
jobs-l >file.txt
文件.txt
[1]+ 3693 Running firefox &
这是文件中的预期输出
但实际上,我在文件中什么也没得到。文件已创建但为空
解决方案
那是因为您正在脚本中启动一个新的 shell。这个 shell 确实没有一个正在运行的后台进程。
您可以尝试在当前 shell 中启动 firefox:firefox &
并打开另一个 shell 并运行以下命令:jobs -l
。这应该是空的。
如果您在脚本中启动 Firefox 后台进程,它会显示出来。
#!/usr/bin/env bash
firefox &
jobs -l > processes
推荐阅读
- html - 在 FireFox 中测试时箭头不兼容
- vue.js - 使用 Vuex 和 Vue-Router 进行简单的状态管理
- python - 单元测试模拟熊猫 to_csv
- recursion - 流程图 - 递归
- tensorflow - Tensorflow 的 TripletSemiHardLoss 和 TripletHardLoss 如何以及如何与 Siamese Network 一起使用?
- c# - 如何获取字符列表或列表中的特定字符
- vue.js - 存储获取的数据并在 Nuxtjs 中的组件中使用
- java - libGDX:如何仅截取整个相机场景而不是游戏场景?
- c++ - 如何将 const uint8_t [] 转换为 std::string?
- android - 没有导航控制器,抽屉布局不起作用