我有一个脚本,用于检查是否安装了软件包以及特定进程是否正在使用端口 8080。我对 bash 完全没有经验,所以我做了这样的事情:
if dpkg -s net-tools; then
if netstat -tlpn | grep 8080 | grep java; then
echo "Shut down server before executing this script"
exit
fi
else
echo "If the server is running please shut it down before continuing with the execution of this script"
fi
# the rest of the script...
Run Code Online (Sandbox Code Playgroud)
但是,当脚本执行时,我在终端中同时获得了dpkg -s net-tools和netstat -tlpn | grep 8080 | grep java输出,但我不想要那样,如何隐藏输出并只保留ifs的结果?
另外,有没有更优雅的方式来做我正在做的事情?而且有一个更优雅的方式来知道哪些进程正在使用的端口8080(不只是如果了所使用的话),如果有的话?
我想要全新安装的 Python 并运行sudo apt-get remove --purge python. 显然它几乎杀死了我在系统中安装的所有东西。
看着history.log我想我可以再次手动安装软件包,但有数百个,我不能只是复制粘贴。
具有讽刺意味的是,仍然安装了python。我可以用它执行一些替换正则表达式,以便我可以解决这个烂摊子吗?或者用 bash。
我正在尝试为folder文件夹中的每个目录创建一个脚本,只n压缩最新的文件。
但是,我在处理多个单词文件时遇到了问题。我需要一种方法将它们用引号括起来,以便tar命令知道每个文件是哪一个。
到目前为止,这是我的脚本:
#!/bin/bash
if [ ! -d ~/backup ]; then
mkdir ~/backup
fi
cd ~/folder
for i in *; do
if [ -d "$i" ]; then
original=`pwd`
cd $i
echo tar zcf ~/backup/"$i".tar.gz "`ls -t | head -10`"
cd $original
fi
done
echo "Backup copied in $HOME/backup/"
exit 0
Run Code Online (Sandbox Code Playgroud)