一 环境变量
#单引号和双引号的共同作用是当字符串中,存在空格等字符的时候,可以加到环境变量中来
1)单引号:禁用 变量(和历史)扩展
2)双引号:内部引用了其他环境变量,所以一般为了让带空格的变量是一个整体,我们会使用
echo "$my"
这种方式打印环境变量
设置环境变量,
export myname='piao hailin!'
#打印
echo ${myname} # 推荐,更精确
echo $myname
#卸载
unset myname
二 截断字符串
basename 参数 #找到结束的文件或目录
dirname 参数 #与basename相反,得到他"前面"的部分
三 命令替换
创建一个包含可执行命令结果的环境变量
使用命令替换可以将任何命令或命令管道放在 ` ` 或 $( ) 之间
四 字符穿截取
export mystring='foaafoddfobbfoccfoddfoee.tar.gz'
# 从最后一个fo开始截取
echo ${mystring##*fo}
ee.tar.gz
# 从第一个fo开始截取
echo ${mystring#*fo}
aafoddfobbfoccfoddfoee.tar.gz
# 从后往前,第一个匹配的
echo ${mystring%.*}
foaafoddfobbfoccfoddfoee.tar
# 从后往前,最后一个匹配
echo ${mystring%%.*}
foaafoddfobbfoccfoddfoee
# 按照索引截取
echo ${mystring:0:1}
f
五 接收自变量
第0个表示命令名称
$# 表示变量的个数
$@ 一次引用所有命令行自变量
例:
$0
$1
...
$15
$#
六 shell算术
使用 shell 结构来执行简单的整数运算。只需将特定的算术表达式用 "$((" 和 "))" 括起.
$ echo $(( 100 / 3 ))
33
$ myvar="56"
$ echo $(( $myvar + 12 ))
68
$ echo $(( $myvar - $myvar ))
0 $ myvar=$(( $myvar + 1 ))
$ echo $myvar
57
七 函数
可以将函数(如上面的函数)
放在 ~/.bashrc 或
~/.bash_profile 中,
以便在 bash 中随时使用它们。
.bash_profile修改后要重启
八 名称空间
变量前加local关键字
这样在方法外部,变量就会失效
否则默认的变量是全局的
九 相关操作
运算符 描述 示例
文件比较运算符
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
#!/usr/bin/env bash
# source命令从文件中读入 bash 语句,然后执行它们
source config.properties
export myname='this my first linux shell!'
export i='100'
echo $title
java -version
echo ${JAVA_HOME}
helloshell(){
# 局部变量
local version="1.0"
# 全局变量
name="phl"
echo "hello shell!"
}
helloshell
echo $version
echo $name
echo ${myname}
# 这个语句的格式很严谨 if空格[空格a空格=空格b空格]
if [ "$1" = "h" ]
then
echo this is piao hailin.
echo the first parameter is $1
echo $((1000/3))
echo "这是一个特殊的参数,第0号索引:$0"
echo '参数的个数是:'$#
#m是循环控制变量
for m in $@
do
echo "$m"
done
elif [ "$2" = "p" ]
then
echo 'exit the shell.'
exit
else
echo this is not piao.
fi
echo 'while'
myvar=0
while [ $myvar -ne 3 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done
echo 'until'
myvar=0
until [ $myvar -eq 3 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done
case "${1}" in
gz)
echo 'this is a gz.'
;;
tar)
echo 'this is a tar.'
;;
*)
echo "this is an other."
exit
;;
esac
分享到:
相关推荐
详细介绍Linux shell脚本基础学习
NULL 博文链接:https://listen-raining.iteye.com/blog/2316971
Linux shell脚本基础学习我们将分几讲来慢慢细说,希望能对想学习Linux shell脚本编程的初学者有一个明确的帮助,水平得到提高。
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
介绍了linux shell的常见脚本命令的使用
内容概要:对linux shell 基础编程思路进行讲解 使用人群:还未使用过shell脚本,想初步了解shell的学习者 目的:能简单阅读shell脚本,或进行shell脚本的简单编写
Linux shell脚本编写基础
Linux_shell脚本全面学习 Linux_shell脚本全面学习
Linux-shell脚本全面学习.pdf
LinuxShell脚本编程实例.pdf
Linux Shell脚本编写基础
文件包含大作业shell脚本(快速备份系统)源码,实验课做的Linux实验shell脚本:Samba实验,DDNS(DHCP服务器 和DNS服务器的配置)的shell脚本,运行脚本每个实验只需要两三分钟即可完成。 其中sy1为实验一脚本,sy2...
LinuxShell脚本编程实例.doc
学习shell脚本经典书籍《Linux shell 脚本攻略-第二版》全书源代码合集
运维常用的 34 个 Linux Shell 脚本.doc
Linux shell 脚本攻略,学习linux新手入门的较好教材,第二版,现已出版第三版
Linux shell脚本基础学习我们将分几讲来慢慢细说,希望能对想学习Linux shell脚本编程的初学者有一个明确的帮助,水平得到提高
Linux_Shell脚本攻略.第3版,高清电子版,作者Clif Flynt,Sarath Lakshman,Shantanu Tushar. 这本书的电子版也可以到http://readfree.me这个网站上下载。
Linux Shell脚本教程:30分钟玩转Shell脚本编程 _