Linux Bash
在介绍bash之前,需要先介绍它的起源——shell。shell俗称壳,它是指UNIX系统下的一个命令解析器;主要用于用户和系统的交互; bash,全称为Bourne-Again Shell。它是一个为GNU项目编写的Unix shell
echo 参数
echo -e 处理特殊字符
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;${ }
关于linux shell 中
$
的用法详见$ & 切分文件名提取文件扩展名或提取文件名示例
$ A=B $ echo $AB 原本是打算先将 $A 的结果替换出来,然后再补一个 B 字母于其后, 但在命令行上,真正的结果却是只会提换变量名称为 AB 的值出来… 若使用 ${ } 就没问题了: $ echo ${A}B BB
#!/bin/bash #提取文件名,删除后缀。 file_name="text.gif" name=${file_name%.*} echo file name is: $name 输出结果: file name is: test
if判断语句
示例: 提示用户输入值。若输入的值小于0,则输出“negtive number”;若等于0,则输出“number zero”,否则,输出“positive number”。
#!/bin/bash # 提示用户输入一个值 echo -n "please input a number:" # 保存用户输入的值到num中 read num if [ "$num" -lt "0" ];then # 小于0,则输出“negtive number” echo "negtive number" elif [ "$num" -gt "0" ];then # 大于0,则输出“positive number” echo "positive number" else # 大于0,则输出"number zero" echo "number zero" fi exit 0
注意: []中的语句一定要与中括号两端有空格, 否则会报错
for循环
基本格式
for 变量名in列表
do
命令1
命令2…
done
格式说明
当变量值在列表里, for循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的 shell命令和语句。变量名为任何单词。 in列表用法是可选的,如果不用它, for循环使用命 令行的位置参数。
示例:
输入当前文件夹的一级子目录中文件名字。
#!/bin/bash
# 将ls的结果保存到变量CUR_DIR中
CUR_DIR=`ls`
# 显示ls的结果
echo $CUR_DIR
for val in $CUR_DIR
do
# 若val是文件,则输出该文件名
if [ -f $val ];then
echo "FILE: $val"
fi
done
exit 0
注意: ls
中的引号是反引号``
使用break和continue控制循环
基本格式
break命令允许跳出循环。 continue命令类似于 break命令,只有一点重要差别,它不会跳出循环,只是跳过这个循环步
示例:
从0开始逐步递增,当数值等于5时,停止递增。Bash脚本内容如下: