我正在尝试编写一个脚本来响应 -c 输入作为参数。它应该以大写形式打印下一个参数。第二个是 -[0-9] 的输入,您可以在其中给出从 0 到 9 的任何数字。然后应打印下一个参数与您输入的数字一样多。
这是我的代码:
function print_info(){
echo mijn CPU-type is: $CPU
echo mijn Totaal beschikbare RAM is: $RAMTOTAAL kB
echo mijn IP-adres is $IP_ADDR en mijn Default Gateway is: $GW
echo momenteel is er $RAMUSEDPROCENT % van mijn geheugen in gebruik
}
while :
do
param=1
params=$#
CPU=$(cat /proc/cpuinfo | grep model | grep name | cut -d: -f2)
RAMTOTAAL=$(free | grep Mem | cut -d: -f2 | awk '{ print $1}')
IP_ADDR=$(ifconfig | grep inet | head -1 | cut -d: -f2 | awk '{print $1}')
GW=$(netstat -nr | awk '{print $2}' | head -3 | awk 'NR == 3 { print $1}')
RAMFREE=$(free | grep Mem | cut -d: -f2 | awk '{ print $3}')
RAMUSED=$(free | grep Mem | cut -d: -f2 | awk '{ print $2}')
RAMUSEDPROCENT=$(($RAMUSED*100/$RAMTOTAAL))
counter=1
while [ "$param" -le "$params" ]
do
case \$$param in
"-c" ) shift; echo \$$param zegt je dat | awk '{print toupper($0)}'; print_info;;
[0-9] ) shift; while [ $counter -lt \$$param ]; do echo \$$param; print_info; done;;
* ) eval echo \$$param zegt je dat; print_info;;
esac
(( param ++ ))
done
done
我希望你们能帮助我。