bash 脚本的建立
简单的示例:
文件名为scp1
#! /bin/bash
who
date
# 为注释
特殊形式 #! 告诉系统后面同一行上后面的那个参数是用来执行本文件的程序
运行脚本:(两种方法)
一:使用命令 /bin/bash scp1
二:chmod u+x scp1
./scp1
变量的声明: declare , typeset
变量的引用: 变量名前加 $来访问它的内容
" "内的允许 $ 符号对变量的替换
' ' 则不允许
\ 可以去除某些字符特殊含义,包括 $
命令的替换 $(command)
输入命令:read
脚本位置参数的传递:$1..$9
$0 为脚本文件或命令的名字
$# 为传递给一个执行中shell脚本参数的个数
当参数个数多于9个时,可以使用shift 把命令行参数向左移动一位, 当移动一次 $# 也会减一
shift [N] 为移动N个位置
set 可以用来设置位置参数
示例:(文件名:demo_set)
#! /bin/bash
filename="$1"
set $(ls -il filename)
inode="$1"
size="$6"
echo "Name Inode Size"
echo "$filename $inode $size"
exit 0
使用时:
demo_set file0
上面先使用命令替换,将ls的结果作为位置参数
控制语句:
第一种:
if expression
then
then-command
fi
第二种:
if expression
then
then-command
else
else-command
fi
第三种:
if expression
then
then-command
elif
elif-command
else
else-command
fi
表达式可以用 test 或者 [ ] 来检测
for语句
for var [ in arg-list ]
do
command-list
done
示例:
结果示例:
while语句:
while expression
do
command-list
done
until语句:(直到条件为真则退出)
until expression
do
command-list
done
case语句:
case var in
pattern1) command-list
;;
pattern2) command-list
;;
.....
pattern) command-list
;;
esac
break , continue 和C类似
数值处理:
let命令
shell扩展 $((expression))
expr命令
若要使一个数增加,则可以:
foo=$(($foo+1))
函数:
function_name()
{
}