
- #!/bin/bash
- touch 1
- chmod 241 1
- if [ -r 1 ]
- then
- echo "文件1有可读权限"
- fi
- if [ -w 1 ]
- then
- echo "文件1有可写权限"
- fi
- if [ -x 1 ]
- then
- echo "文件1有可可执行权限"
- fi
- #!/bin/bash
- read -p "请输入一个年份" year
-
- #对年份的判断
- #year对4\100和400取余都是算术运算,需要借助于(())\$[]\let\expr
- #test指令内不能使用&&和||进行运算,test提供了-a进行逻辑与,-o进行逻辑或
- if [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]
- #if [ $((year%4)) -eq 0 ] && [ $((year%100)) -ne 0 ] || [ $((year%400)) -eq 0 ]
- #if [ $((year%4==0&&year%100!=0||year%400==0)) -eq 1 ]
- then
- echo "$year是一个闰年"
- else
- echo "$year不是一个闰年"
- fi
- #!/bin/bash
- read -p "请输入.sh文件" var
- if [ -e "$var" ]
- then
- echo "文件存在"
- if [ -x "$var" ]
- then
- bash $var
- else
- chmod 777 $var
- fi
- else
- echo"文件不存在"
- touch $var
- fi
- #!/bin/bash
- read -p "请输入一个.c文件" filename
- if [ -s $filename ] #判断文件是否存在且有内容
- then
- gcc $filename
- else
- if [ -e $filename ] #如果文件存在
- then
- rm $filename
- echo "$filename已删除"
- else
- echo "$filename不存在"
- fi
- fi
- #!/bin/bash
- read -p "请输入两个文件名" filename1 filename2
- if [ $filename1 -nt $filename2 ]
- #如果条件成立,-nt参数表示前面文件的时间戳更新
- then
- echo "$filename1更新"
- else
- echo "$filename2更新"
- fi
- #!/bin/bash
- read -p "请输入成绩" score
- ret=$((score/10))
- : 'case $score in
- 1??|9?)
- echo "A"
- ;;
- 8?)
- echo "B"
- ;;
- 7?)
- echo "C"
- ;;
- 6?)
- echo "D"
- ;;
- *)
- echo "不及格"
- esac'
-
- case $ret in
- 10|9)
- echo "A"
- ;;
- 8)
- echo B
- ;;
- 7)
- echo C
- ;;
- 6)
- echo D
- ;;
- *)
- echo "不及格"
- esac
- read -p "请输入一个字符" var
- case $var in
- [0-9])
- echo "是一个数字"
- ;;
- [A-Z]|[a-z])
- echo "是一个字母"
- ;;
- *)
- echo 不是数字也不是字母
- esac
- #!/bin/bash
- read -p "please input a num:" num
- i=1
- sum=0
- while [ $i -le $num ]
- do
- sum=$((sum+i))
- i=$((i+1))
- done
- #!/bin/bash
- read -p "请输入数组" -a arr
- i=0
- sum=0
- while [ $i -lt ${#arr[*]} ]
- do
- ((sum += ${arr[i]}))
- ((i++))
- done
- echo $sum
- #!/bin/bash
- read -p "请输入行数" line
- i=1
- j=1
- while [ $i -le $line ]
- do
- j=1 #每一次进入内层循环前j都从1开始
- while [ $j -le $i ]
- do
- echo -n "*"
- ((j++))
- done
- echo "" #每行输出结束需要换行
- ((i++))
- done
- #!/bin/bash
- for i in {100..999}
- do
- bai=$(($i/100))
- shi=$(($i/10%10))
- ge=$(($i%10))
- if test $(($[$bai**3] + $[$shi**3] + $[$ge**3])) -eq $i
- then
- echo $i
- fi
- done
- arr=([0]=12 [5]=78 [7]=23)
- sum=0
- for j in ${arr[*]}
- do
- ((sum+=j))
- done
- echo $sum
- #!/bin/bash
- fnum=0
- dnum=0
- for i in `ls ~`
- do
- if [ -d ~/$i ]
- then
- ((dnum++))
- fi
- if [ -f ~/$i ]
- then
- ((fnum++))
- fi
- done
- echo $((dnum+fnum))
-
-
-
- #!/bin/bash
- #var1和var2都是软连接文件
- var1=2
- var2=test1
- #对软连接文件判断是,实际是在判断源文件
- if [ -f $var1 ]
- then
- echo "$var1是一个普通文件"
- fi
-
- if [ -d $var2 ]
- then
- echo "$var2是一个目录文件"
- fi
- #!/bin/bash
-
- #select```in和case ```in结合
- #可以通过用户的不同选择执行不同的指令
- select i in linux wins macos q Q
- do
- case $i in
- linux)
- echo "打开的是Linux系统"
- ;;
- wins)
- echo "打开的是wins系统"
- ;;
- macos)
- echo "打开的是macos系统"
- ;;
- q)
- break
- ;;
- Q)
- exit
- ;;
- *)
- echo "选择错误"
- esac
- done
-
- echo hello world
- #!/bin/bash
- read -p "请输入游戏名" gname
-
- select i in Y YES y yes N NO n NO
- do
- case $i in
- Y|YES|y|yes)
- echo "下载$gname"
- ;;
- N|NO|n|no)
- echo "不下载$gname"
- exit
- esac
- done
- #!/bin/bash
- for((i=1;i<3;i++))
- do
- echo "进入第一层循环 i=$i*******************"
- echo
- for j in `seq 1 1 2`
- do
- echo "进入第二层循环 j=$j------------------"
- echo
- for k in {1..3}
- do
- echo "进入第三层循环 k=$k /"
- echo
- if [ $k -eq 2 ]
- then
- echo "准备跳出循环"
- #break 3
- continue 3
- fi
- echo "退出第三层循环 k=$k/"
- echo
- done
- echo "退出第二层循环 j=$j------------------"
- echo
- done
- echo "退出第一层循环 i=$i*******************"
- echo
- done
- #!/bin/bash
- function fun()
- {
- echo hello world
- }
-
- function add()
- {
- echo $(($1+$2))
- echo $0
- a=258
- return $a #返回值只能返回0-255之中的数
- }
- add 12 34
- var=$? #使用$?接收函数的返回值
- echo $var
- echo $a
- #!/bin/bash
- function fun()
- {
- echo hello world
- }
-
- a=90
- function add()
- {
- #echo $(($1+$2))
- #echo $0
- a=258
- return $a #返回值只能返回0-255之中的数
- }
- : 'add 12 34
- var=$? #使用$?接收函数的返回值
- echo $var
- echo $a #可以访问a的值,a是一个全局变量
- '
- #如何接受fun函数的结果
- ret=`fun`
- echo $ret #代码只有1行输出,fun中的输出已经被命令置换符接收了
- add
- echo $a #258,因为a在函数内被改变了
- #!/bin/bash
- function fun()
- {
- echo hello world
- }
-
- a=90
- function add()
- {
- #echo $(($1+$2))
- #echo $0
- a=258
- local b=80 #被定义成了一个局部变量
- echo $b
- unset b #unset是可以清空局部变量
- echo $b
-
- return $a #返回值只能返回0-255之中的数
- }
- : 'add 12 34
- var=$? #使用$?接收函数的返回值
- echo $var
- echo $a #可以访问a的值,a是一个全局变量
- '
- #如何接受fun函数的结果
- ret=`fun`
- echo $ret #代码只有1行输出,fun中的输出已经被命令置换符接收了
- add
- echo $a #258,因为a在函数内被改变了
- echo $b #空行,因为b在函数内是一个loacl类型的变量,局部变量
- num=0
- read -p "请输入一组数据:" -a arr
- function add()
- {
- for ((i=0; i<${#arr[*]}; i++))
- do
- ((num+=arr[i]))
- done
- return $num
- }
- add ${arr[*]}
- echo $?
- function fun()
- {
- echo "uid:"`id -u`
- echo "gid:"`id -g`
- uid=`id -u`
- gid=`id -g`
- }
- fun
- echo $uid
- echo $gid