运行shell脚本
手动在环境中开启指定解释器:sh test.sh
直接在当前环境中运行的shell中运行脚本:. test.sh
直接在当前环境中运行的shell中运行脚本:source test.sh
执行权限
在这一部分由于我们假设脚本文件有可执行器权限,所以我们使用chmod +x test.sh
为我们的test.sh
文件增加了可执行权限。
我们知道当一个文件具有可执行权限时我们可以使用该文件的路径名直接运行该文件,有两种方式可以运行脚本:
1.绝对路径名运行脚本文件
绝对路径就是从根目录下开始记录文件路径名,是文件在计算机上真正存在的路径。(如果不知道你的文件路径名,可以在当前位置的shell中使用pwd
查询当前所在位置)
2../相对路径名的格式运行脚本文件
相对路径是指以当前的文件作为起点,相较于当前目录的位置而被指向并且加以引用的文件资源。
比如我们知道test.sh
文件的绝对路径为/home/westos/Desktop/textcpp/test.sh
,那么当我们在testcpp文件夹中时,test.sh
文件的相对路径为test.sh
。
又因为.
代表当前所在位置,故而为其实./test.sh
其实就是该文件的绝对路径,只是表示的方式不同。
变量操作
- 创建普通变量:name=“test”,组要注意的是等号两边不能有空格。
- 创建局部变量:local name=“test”,使用local修饰的变量在函数体外无法访问,只能在函数体中使用。
- 创建只读变量:name=“only_read” -> readonly name,这种变量不可以被修改。
- 使用变量:echo $name或者echo ${name}
- 删除变量:unset name,删除之后的变量无法被访问,需要注意无法删除只读变量。
shell中三种类型变量
- 局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
创建变量
- 使用单引号创建:var='test'。
这种方式创建的变量只能原样输出,变量无效,我们可以借用c中的“字符串常量”的定义理解这种特性。除此以外,单引号中不能出现单独的单引号,转义也是不可以的。 - 使用双引号创建:var="my name is ${name}",这种方式创建的字符串变量有效,也可以出现转义符
使用for
(或while
循环)循环遍历数组元素:
1 2 3 4 5 6 |
#!/bin/bash
a=(1 2 3 4 5 6)
for ((i=0; i<10; i++))
do
echo "a[$i]=${a[$i]}"
done
|
除此以外我们还可以使用${a[*]}
或者${a[@]}
来遍历数组元素,具体代码如下:
1 2 3 4 |
#!/bin/bash
a=(1 2 3 4 5 6)
echo ${a[*]}
echo ${a[@]}
|
标签:文件,shell,变量,sh,test,name From: https://www.cnblogs.com/sunyang13763857269/p/17400135.html