bash - 如果没有返回则执行操作
问题描述
如果 netstat 未返回任何结果,我将尝试回显“未找到”。但是,如果它确实返回结果,则显示 netstat 结果。
我正在尝试用谷歌搜索我正在使用的东西,但找不到太多关于它的信息。
#!/bin/bash
echo "Which process would you like to run netstat against?"
read psname
echo "Looking for '$psname'"
sleep 2
command=$(netstat -tulpn | grep -e $psname)
[[ ! -z $command ]]
这与 [[ !-z $命令]]
解决方案
[[ ! -z $command ]]
不会“显示”任何输出。
使用 if/else 设置来显示结果;
if [[ ! -z $command ]]; then
echo "$psname was found!"
else
echo "No process named '${psname}' found!"
fi
或简写变体;
[[ ! -z $command ]] && echo "$psname was found!" || echo "No process named '${psname}' found!"
请注意,如果用户输入可能包含空格,则""
在 grep 字符串周围使用它会更省事;
command=$(netstat -tulpn | grep -e "$psname")
推荐阅读
- python - 使用python访问tcp
- android - “总”变量未更新
- python - 寻找python函数以查找字符串中最长的顺序重复子字符串
- java - 读取外部图像
- typescript - TypeScript 条件运算符 - 可变元组,为什么它不起作用
- javascript - 如何将对象数组转换为枚举,如javascript中的键值对?
- r - ggplot2 - 映射多边形 aes 填充 ggplot() 与 geom()
- python - ModuleNotFoundError:没有名为“_pywrap_tensorflow_internal”的模块
- kubernetes - Kubernetes Nginx 入口 phpmyadmin 502 错误
- clojure - 在 Clojure 中构建一个类似于 `cat < operations.txt` 的 cli