Shell基础-2
Tutorial: Shell基础
Category: Shell
Published: 2026-04-07 13:58:25
Views: 23
Likes: 0
Comments: 0
Shell 基础-2
- 九九乘法表
#!/bin/bash
for i in $(seq 9); do
for j in $(seq $i); do
echo -n "$i*$j=$((i * j)) "
done
echo
done
: <<EOF
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
EOF
- 批量修改后缀
#!/bin/bash
for i in "ls *.$1"; do
mv $i ${i%.*}.$2
done
- 配置免密登录
#!/usr/bin/expect
VMS=(
192.168.0.170
192.168.0.171
192.168.0.172
192.168.0.173
192.168.0.174
)
SERVER="192.168.0.175"
SERVER_PWD="123456"
CLIENT_PWD="654321"
function config_client() {
for vm in ${!VMS[@]}; do
sleep 1
expect <<EOF
spawn ssh ${VMS[$vm]}
expect "yes/no" {send "yes\r"}
expect "assword" {send "${CLIENT_PWD}\r"}
expect "#" {send "rm -rf ~/.ssh/*\r"}
expect "#" {send "ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -q\r"}
expect "#" {send "ssh-copy-id ${SERVER}\r"}
expect "yes/no" {send "yes\r"}
expect "assword" {send "${SERVER_PWD}\r"}
expect "#" {send "exit\r"}
expect "#" {send "exit\r"}
EOF
done
}
function send_public_key() {
for vm in ${!VMS[@]}; do
sleep 1
expect <<EOF
spawn ssh-copy-id ${VMS[$vm]}
expect "assword" {send "${CLIENT_PWD}\r"}
expect "#" {send "echo\r"}
EOF
done
}
function main() {
rm -rf ~/.ssh/*
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
config_client
send_public_key
}
main
- 100 求和
#!/bin/bash
echo $(seq 100) | awk 'BEGIN{sum = 0}{for(i = 0; i <= $NF; i++) sum+=i } END{print sum}'
- 打印棋盘
#!/bin/bash
for i in {1..8}; do
for j in {1..8}; do
sum=$((i + j))
if [ $((sum % 2)) -eq 0 ]; then
echo -ne "\033[46m \033[0m"
else
echo -ne "\033[47m \033[0m"
fi
done
echo
done