1 Star 0 Fork 0

fwz / shell 学习笔记

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

shell 学习笔记

192.168.174.128

1.shell脚本的执行方法

    1.  bash script-name 或  sh script-name    第一种方法是脚本文件本身没有可执行权限时
    2.  ./path/script-name 或  ./script-name   第二种方法需要有可执行权限
    3.  source script-name 或  . script-name  (注意符号“.”与 script-name之间有空格)  第三种方法当我们需要在一个脚本中使用另一个脚本中的变量的时候,变量chars在当前shell中也是有效的

打开终端。就会出现一个提示符
username@hostname$   $表示普通用户
root@hostname#       #表示超级管理员 linux最高用户


shell 脚本通常第一行以 #! 其实的文本文件。如下   
#!/bin/bash   解释器 路径


# 指明注释开始, 直到行尾

$echo "hello world !"   #执行错误, -bash: !": event not found   双引号  带解析功能   如果要双引号需要 \  echo "hello world \!" 

# 要想输出 !  可以使用  单引号

$echo 'hello world !'

echo -e "包含转义字符的字符串"

变量

var = "hello  world"
echo $var   或者  echo ${var}


8.命令排序
&& || 具备逻辑判断

./configure && make && make install (命令返回值 echo $?)
mkdir /var/111/222/333 && echo ok
mkdir -p /var/111/222/333 && echo ok
ls /home/111/222/333/444 || mkdir -p /home/111/222/333/444
[ -d /home/111/222/333/444 ] || mkdir -p /home/111/222/333/444

9.shell 的通配符 [元字符]
* 匹配任意多个字符   ls *.txt
? 匹配任意一个字符   ls d?ta.txt
[] 匹配括号中任意一个字符 
() 在子 shell 中执行(cd /boot;ls) (umask 077; touch file1000)
{} 集合 touch

彩色打印   \e[1;31m : 设置颜色              \e[0m:取消颜色
echo -e "\e[1;31m this is red text \e[0m"


$?  上一个命令的返回值 0 表示成功

$1  第一个参数  (位置变量)
$2  第二个参数  (位置变量)



3. 位置变量
	$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
4. 预定义变量
	$0 脚本名
	$* 所有的参数
	$@ 所有的参数
	$# 参数的个数
	$$ 当前进程的 PID
	$! 上一个后台进程的 PID
	$? 上一个命令的返回值 0 表示成功
	
	
了解$*和$@区别 

5.read 从键盘读入变量名
	read -p "Please input a ip:" 变量名     #提示信息
	read -t 5 -p "等待5秒输入"  变量名      #等待5秒输入

	read -n 5 name   // 输入5个字符

""   弱引用
''   强引用 

``   反引号    表示这里面的命令先执行
	touch `date +%F`_file.txt   创建一个当前日期的文件

变量的运算


1. 整数运算
	方法一:expr
	expr 1 + 2
	expr $num1 + $num2 + - \* / %
	方法二:$(())
	echo $(($num1+$num2)) + - * / %
	echo $((num1+num2))
	echo $((5-3*2))
	echo $(((5-3)*2))
	echo $((2**3))
	sum=$((1+2)); echo $sum
方法三:$[]
	echo $[5+2] + - * / %
	echo $[5**2]
	方法四:let
	let sum=2+3; echo $sum
	let i++; echo $i
2. 小数运算
	echo "2*4" |bc
	echo "2^4" |bc
	echo "scale=2;6/4" |bc
	awk 'BEGIN{print 1/2}'
	echo "print 5.0/2" |python

变量内容的删除和替换(扩展)


	# url=www.sina.com.cn
	# echo ${#url} 获取变量值的长度
	15
	# echo ${url} 标准查看
	www.sina.com.cn
	# echo ${url#*.} 从前往后,最短匹配
	sina.com.cn
	# echo ${url##*.} 从前往后,最长匹配 贪婪匹配
	cn
	
	
	# echo ${url##*.} 从前往后,最长匹配 贪婪匹配
	cn
	# url=www.sina.com.cn
	# echo ${url}
	www.sina.com.cn
	# echo ${url%.*} 从后往前,最短匹配
	www.sina.com
	# echo ${url%%.*} 从后往前,最长匹配 贪婪匹配
	www
	# url=www.sina.com.cn
	# echo ${url#a.}
	www.sina.com.cn
	# echo ${url#*sina.}
	com.cn
	# echo $HOSTNAME
	tianyun.1000phone.com
	# echo ${HOSTNAME%%.*}
	tianyun
	
	索引及切片
	# echo ${url:0:5}
	# echo ${url:5:5}
	# echo ${url:5} 

空文件

简介

shell 学习笔记 展开 收起
Shell
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Shell
1
https://gitee.com/fengzi6/shell_learning_notes.git
git@gitee.com:fengzi6/shell_learning_notes.git
fengzi6
shell_learning_notes
shell 学习笔记
master

搜索帮助