bash - 命令在终端中执行良好,而不是在 bash 脚本中
问题描述
我正在努力:
#!/bin/bash
if $(ps -C "bm_d21_debug")
then
kill $(ps -C "bm_d21_debug" -o pid=)
echo "exists"
fi
它返回:“PID:找不到命令”
不知道我做错了什么?
解决方案
考虑这一行:
if $(ps -C "bm_d21_debug")
您ps
在命令替换中执行命令,这将返回命令输出。然后该if
命令尝试将该输出作为命令运行。
ps 输出的第一个单词是PID
,if
它将作为命令名称处理。因此,“找不到命令”错误。
你只想
if ps -C "bm_d21_debug" >/dev/null; then
echo running
else
echo NOT running
fi
推荐阅读
- node.js - 从可调用的 https 云函数将图像上传到 Firebase 存储
- google-cloud-platform - GCP Cloud SQL 作为 AWS RDS Mysql 的副本
- javascript - jQuery - onClick 为 ScrollLeft 设置动画 - 不工作
- docker - docker-compose 在后台构建?
- copy - 使用java将文件复制到android studio中的外部存储
- json - AT 命令对 JSON 源的 HTTP 请求,状态为 200,但响应为空
- python-3.x - 如何在表单参数中正确传递服务器 ip 地址?
- javascript - 计算已知角度的测量值
- python - 我们如何在 django admin 中更改时间格式
- sql - 根据不同列中匹配的数据生成组 ID