什么是shell
shell是一种命令语言,是为使用者提供操作界面的一种软件,软件可以接收用户的命令,并且执行用户输入的命令,然后对相应的程序进行调用。
shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、bash、psh、zsh;C家族主要包括csh、tcsh(bash和zsh在不同程度上支持csh的语法)
我们可以通过/etc/shells条件来查询linux支持的shell。命令如下:
[root@localhost ~] vi /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
shell常用语法
https://www.cnblogs.com/lynalee/p/16565934.html
原文:
https://zhuanlan.zhihu.com/p/500367210
1 打印国际象棋棋盘:
#!/bin/bash
# 打印国际象棋棋盘
# 设置两个变量,i 和 j,一个代表行,一个代表列,国际象棋为 8*8 棋盘
# i=1 是代表准备打印第一行棋盘,第 1 行棋盘有灰色和蓝色间隔输出,总共为 8 列
# i=1,j=1 代表第 1 行的第 1 列;i=2,j=3 代表第 2 行的第 3 列
# 棋盘的规律是 i+j 如果是偶数,就打印蓝色色块,如果是奇数就打印灰色色块
# 使用 echo ‐ne 打印色块,并且打印完成色块后不自动换行,在同一行继续输出其他色块
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
冒泡排序
#!/bin/bash
#解释:
#sort 函数用来对数组进行冒泡排序,它接收一个数组作为参数,并返回排序后的结果。
#if [[ "$#" -eq 0 ]]; then 和 if [[ "$1" == "-h" || "$1" == "--help" ]]; then #分别表示如果没有参数或者第一个参数是 -h 或 --help,就打印帮助信息并退出。
#echo "Usage: $0 [-h|--help] <array>" 表示打印使用说明。
#sorted=$(sort "$@") 表示调用 sort 函数对传入的数组进行排序,并将结果保存到变量 sorted 中。
#echo "Sorted array: $sorted" 表示打印排序后的数组。
function sort() {
arr=("$@")
length=${#arr[@]}
for ((i=0; i<$length-1; i++))
do
for ((j=0; j<$length-1-$i; j++))
do
if ((${arr[j]} > ${arr[j+1]}))
then
temp=${arr[j]}
arr[j]=${arr[j+1]}
arr[j+1]=$temp
fi
done
done
echo ${arr[@]}
}
if [[ "$#" -eq 0 ]]; then
echo "Usage: $0 [-h|--help] <array>"
echo "Sort an array using bubble sort algorithm."
echo " -h, --help display this help and exit"
echo " <array> the array to be sorted, e.g. '1 3 2 4'"
exit 1
fi
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo "Usage: $0 [-h|--help] <array>"
echo "Sort an array using bubble sort algorithm."
echo " -h, --help display this help and exit"
echo " <array> the array to be sorted, e.g. '1 3 2 4'"
exit 0
fi
sorted=$(sort "$@")
echo "Sorted array: $sorted"