sh_shell的基础语法1
创建当前目录下建立一个a.sh,并执行,查看结果
#!/bin/sh #制定shell的类型
mkdir test #在当前的目录中创建一个名为test的文件
cd test #进入这个test文件夹
for ((i=0; i<10; i++)); do #通过循环创建十个普通的文本文件
touch test_$i
done #完成循环操作
cd ../ #返回上一级目录
chmod -R 777 test #为test文件夹赋予最高权限
ps:
- 本例子已在root用户下进行
- ‘#’ 代表注释
- 使用的默认的shell 为bash
执行过程步骤
- vi a.sh #用vi创建一个a.sh文件
- 在vi中键入上述的代码
- chmod 775 a.sh #对a.sh文件增加可执行权限
- ./a.sh #执行a.sh
- cd test
- ls #列出文件
result
root@iZ28nywuw2zZ:~# ./a.sh
root@iZ28nywuw2zZ:~# cd test
root@iZ28nywuw2zZ:~/test# ls
test_0 test_1 test_2 test_3 test_4 test_5 test_6 test_7 test_8 test_9
变量的种类
局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。shell变量
shell变量是由shell程序设置的特殊变量。
变量
定义一个变量 shell变量 test_value 并将其赋值10 再打印出来
#!/bin/sh
test_value=10
echo $test_value
result
10
使用变量
使用一个定义过的变量,只需要在其前面加$
#!/bin/sh
test_value=10
echo $test_value
echo ${test_value} #加花括号是为了帮助解释器识别变量的边界
10
10
声明只读变量
关键词 readonly
#!/bin/sh
test_value=10
readonly test_value
echo $test_value
10
删除变量
unset test_value
特殊变量
例如查看当前shell的进程好号
echo $$
显示进程号
各类特殊变量的用途
#!/bin/sh
echo $0 #输出当前的sh脚本名
echo $1 #输出传入脚本的第一个参数
echo $2 #输出传入脚本的第二个参数
echo $* #输出传入脚本的所有参数
echo $@ #输出传入脚本的所有参数
a
b
a b
a b
变量 含义
$0 当前脚本的文件名
n传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是 1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
@传递给脚本或函数的所有参数。被双引号("")包含时,各个参数分开,以" 1” “ 2"…" n” 的形式输出所有参数。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。