#!/bin/bash
echo "enter a number"
#read input value
read ans
#case
case $ans in
1)
echo "your number is $ans"
;;
2)
echo "your number is 2"
;;
[3-9])
echo "your number is $ans"
esac
echo "Parameter numbers:$#"
echo "Shell name:$0"
echo "Shell all parameters:$*"
echo "Shell PID:$$"
echo "Shell PPID:$!"
echo "Before command return value:$?"
#echo "get command return:$(ls /home/provision)"
#if : -eq(==) -ne(!=) -lt(<) -gt(>) -ge(>=) -le(<=)
if [ "22" -lt "33" ]
then
echo "22 less than 33"
else
echo "22 not less than 33"
fi
#while
#no space left or right =
num=1
echo "init num = $num"
#need space after [ ,before ]
while [ $num -le 10 ]
do
echo "num=$num"
let num=num+1
done
#file exist
fileName="case_test.sh"
if [ -e $fileName ]
then
echo "$fileName is exist:"
else
echo "$fileName is not exist:"
fi
#is directory
if [ -d $fileName ]
then
echo "$fileName is directory"
else
echo "$fileName is not directory"
fi
if [ -z $fileName ]
then
echo "fileName length is 0"
else
echo "fileName length is not 0"
fi
if [ -n $fileName ]
then
echo "fileName length is not 0"
else
echo "fileName length is 0"
fi
#
for filename in `ls`
do
cat $filename
done
for((i=0; i<10; i++))
do
echo "--$i"
done
echo "Name:${name:-huangxiaobing}"
#function return only number cannot return string
getName(){
return 100
}
getName
echo "getName:$?"
#connect two string
firstname="huang"
lastname="xiaobing"
allname=`printf "%s%s" "$firstname" "$lastname"`
echo "All Name:$allname"
#get the char count of string
countChar=`echo "$firstname"|wc -m`
echo "$firstname count:$countChar"
#return nor number char: return null
echo "12345"|sed 's/[0-9]//g'
#return A
echo "123A45"|sed 's/[0-9]//g'
#return huang
echo ${allname%%xiaobing}
echo ${allname:0:5}
echo ${allname:2:7}
分享到:
相关推荐
5. **字符串操作**:字符串处理是Shell编程中使用非常频繁的操作,手册会介绍如何在Shell中进行各种字符串操作。 6. **文件操作**:文件系统是Linux系统的重要组成部分,学会在Shell中进行文件的基本操作是十分必要...
- 条件语句:if、elif、else用于逻辑判断,例如检查文件是否存在或某个条件是否满足。 - 循环结构:for、while和until循环,用于重复执行某段代码。 - 函数定义:创建自定义函数以封装可重用的代码。 3. **...
《Unix Shell实例精解(第二版)》是一本专注于Unix Shell编程和命令行操作的权威指南。本书旨在帮助读者深入理解和熟练运用Unix Shell,提升在命令行环境下的工作效率。Unix Shell作为Unix和类Unix系统中不可或缺的...
2. **变量与数据类型**:学习如何声明和使用变量,包括字符串、整数、数组等数据类型,以及变量赋值、引用和环境变量的管理。 3. **条件语句与循环结构**:掌握if、elif、else条件判断,以及for、while、until循环...
在本文中,我们将深入探讨几个中级Shell编程实例,涵盖if判断语句、case分支语句、for循环、while循环以及逻辑运算符的应用。 1. **if判断语句**: 使用`if`关键字可以从屏幕读取参数,如`read`命令。在`if`后面的...
例如,`[[ $str =~ ^[0-9]+$ ]]`判断字符串是否全由数字组成。 10. **脚本调试**:`set -x`开启命令行追踪,显示脚本每一步执行的命令;`set -v`开启脚本的逐行打印,便于调试。 11. **错误处理**:使用`trap`命令...
13. **关于数字与字符串的疑惑**:在Shell脚本中,数字运算通常使用`expr`命令或`let`命令进行,字符串操作则依赖于内置命令和外部工具。 14. **Bourne、Korn、C 三种Shell的区别**:尽管这些Shell的基本语法相似,...
- `str1 = str2`: 字符串相等。 - `str1 != str2`: 字符串不相等。 - `-z str`: 字符串为空。 - `-n str`: 字符串非空。 - **整数测试** - `-eq`: 等于。 - `-ne`: 不等于。 - `-gt`: 大于。 - `-lt`: 小于...
- `echo`:打印字符串或变量的值。 - `ls`:列出目录内容。 - `wc`:计算文件的行数、单词数和字符数。 - `cp`:复制文件。 - `mv`:移动或重命名文件。 - `rm`:删除文件。 - `grep`:在文件中搜索特定模式。 - `...
- **命令行Shell**:用户通过键盘输入命令字符串来执行操作。常见的命令行Shell有: - Windows系统的`cmd.exe`。 - Linux/Unix系统的`sh`、`csh`、`ksh`、`bash`等。 在Linux环境下,`bash`是最为常用且功能强大...
- **操作字符串**:使用特定的命令和语法对字符串进行操作,如截取、拼接等。 - **参数替换**:通过特定的模式匹配来替换变量中的内容。 - **变量的间接引用**:通过另一个变量来引用变量名。 ##### 4.2 进阶技巧 ...
- **字符串比较**:`["$a" = "$b"]` 判断 `$a` 和 `$b` 是否相等。 #### 数值比较 - `-eq` 表示相等。 - `-ne` 表示不等。 - `-lt` 表示小于。 - `-le` 表示小于等于。 - `-gt` 表示大于。 - `-ge` 表示大于等于。 ...
7. **条件测试**:`test`命令或其等价的`[`和`]`用于进行条件判断,如检查文件是否存在、比较数值大小、字符串匹配等。 8. **循环结构**:`for`循环常用于遍历序列,`while`循环则根据条件不断执行循环体。 9. **...
### SHELL实例介绍 本文将基于提供的Shell脚本示例,深入探讨Shell编程的基本概念、最佳实践以及如何编写高效、安全的Shell脚本。通过分析三个递进的脚本示例,我们将逐步理解如何改进脚本,使其更加健壮、灵活且...
- 条件测试:如`[ -f file ]`检查文件是否存在,`[[ $var == "value" ]]`进行字符串比较。 - 脚本函数:定义和调用自定义函数,组织代码逻辑。 - 错误处理:使用`set -e`使脚本在遇到错误时立即停止,`trap`捕获信号...
接下来的表达式与运算符章节涵盖了条件表达式、整数比较符、字符串比较符、文件测试、布尔运算符、逻辑判断符、整数运算等。这部分内容是Shell编程中的高级主题,要求读者对基础知识点有较好的掌握。 Shell流程控制...