sh/bash/dash/ksh/zsh等Shell脚本
-
Points
- 帖子: 83
- 注册时间: 2010-02-19 16:13
#1
帖子
由 Points » 2012-04-21 14:49
代码: 全选
#!/bin/sh
#
# 清理ubuntu的老内核
#sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
HEADERS=""
IMAGES=""
for HEADER in `dpkg --get-selections | grep ^linux-headers | \
grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
do
if [[ "$CURRENT" < "$HEADER" ]]
then
echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
echo "Running kernel is not the newest. $CURRENT < $HEADER"
exit 1
else
[[ "$CURRENT" != "$HEADER" ]] && {
HEADERS="${HEADERS} linux-headers-${HEADER}"
IMAGE="`dpkg --get-selections | grep ^linux-image | \
grep "${HEADER}" | awk '{print $1}'`"
IMAGES="${IMAGES} $IMAGE"
}
fi
done
if [[ x"$HEADERS" == x"" ]]
then
echo "没有要清理的老内核."
echo "No old kernel need to clean."
exit 0
fi
CMD="sudo apt-get purge $HEADERS $IMAGES"
echo "$CMD"
if [ "$1" == "-e" ]
then
sh -c "$CMD"
else
echo "请确定以上命令是否正确,然后输入 $0 -e 来执行以上命令。"
echo "Be sure this command is right, then type $0 -e to execute."
fi
运行时一闪没。。

-
Points
- 帖子: 83
- 注册时间: 2010-02-19 16:13
#3
帖子
由 Points » 2012-04-22 13:49
aerofox 写了:用 bash -v 执行看看。
代码: 全选
~$ bash -v PurgeOldKernel
#!/bin/sh
#
# 清理ubuntu的老内核
#dpkg -l linux*2.6* | grep ii | grep -E 'linux-headers|linux-image' | grep -v `uname -r | cut -d- -f1,2` | cut -d' ' -f3 | xargs sudo apt-get purge
#sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
uname -r | awk -F"-" '{print $1"-"$2}'
HEADERS=""
IMAGES=""
for HEADER in `dpkg --get-selections | grep ^linux-headers | \
grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
do
if [[ "$CURRENT" < "$HEADER" ]]
then
echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
echo "Running kernel is not the newest. $CURRENT < $HEADER"
exit 1
else
[[ "$CURRENT" != "$HEADER" ]] && {
HEADERS="${HEADERS} linux-headers-${HEADER}"
IMAGE="`dpkg --get-selections | grep ^linux-image | \
grep "${HEADER}" | awk '{print $1}'`"
IMAGES="${IMAGES} $IMAGE"
}
fi
done
dpkg --get-selections | grep ^linux-headers | grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'
if [[ x"$HEADERS" == x"" ]]
then
echo "没有要清理的老内核."
echo "No old kernel need to clean."
exit 0
fi
没有要清理的老内核.
No old kernel need to clean.
~$
出来这个是什么意思呀,就是显示一下脚本?

-
aerofox
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
#4
帖子
由 aerofox » 2012-04-22 21:42
看来你之前“运行一闪没”是用鼠标双击运行的吧?
现在是告诉你“没有要清理的老内核”了。