目录
(2)方法二:指定shell来解释脚本,不必须有可执行(x)权限
(4)方法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名执行
(5)方法五:自己创建一个路径(将脚本文件所在的绝对路径添加至PATH中)
(1)语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的
(2)命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察
注意:使用前两种方式执行会去开启子bash环境执行,使用source和.会影响当前环境
查看shells文件位置:/etc/shells
(1)顺序执行:程序按从上到下顺序执行
(2)选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
(3)循环执行:程序执行过程中需要重复执行多次某段语句
#方法一:指定路径的命令,要求文件必须有x权限
[root@localhost ~]#chmod +x /root/first.sh
[root@localhost ~]#cd /root/
[root@localhost ~]#./first.sh
当前目录位于:
/root
#方法二:指定Shell来解释脚本,不要求文件必须有x权限。
[root@localhost ~]#bash first.sh
当前目录位于:
/root
#方法三:source 与 . 脚本路径执行shell脚本
[root@localhost ~]#source first.sh
当前目录位于:
/root
#方法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名
echo $PATH
/usr/local/sbin:/usr/local/bin :/usr/sbin :/usr/bin: / rpot/bin
[root@localhost ~]#vim /etc/profile
export PATH=$PATH:/root/shell
#export使环境变量的值全局环境下生效,不加export默认在当前环境变量下生效
[root@localhost ~]#source /etc/profile #刷新配置文件
[root@localhost ~]# echo $PATH #查看当前路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/shell
[root@localhost ~]# chmod +x 1.sh #给脚本加上执行权限
[root@localhost ~]#1.sh #输入脚本名 直接执行
hello
类型 | 设备文件 | 文件描述编号 | 默认设备 |
---|---|---|---|
标准输入 | /dev/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stderr | 2 | 显示器 |
类型 | 操作符 | 用途 |
---|---|---|
重定向输入 | < | 从指定的文件读取数据,而不是从键盘输入 |
重定向输出 | > | 将输出结果保存到指定的文件(覆盖原有内容) |
重定向输出 | >> | 将输出结果换行添加在文件尾部 |
重定向错误输出 | 2> | 将错误信息保存到指定的文件(覆盖原有内容) |
重定向错误输出 | 2>> | 将错误信息追加到指定的文件中 |
混合输出 | &> | 将标准输出、标准错误的内容保存到同一个文件中 |
重定向输出修改密码
管道符号 “|”
将左侧的命令输出结果,作为右侧命令的处理对象
免密修改密码
打印输出内容
选项 | 作用 |
-n | 不追加换行 |
-e | \b?? ?退格 |
\c?? ?抑制更多的输出 | |
\n?? ?换行 | |
\t?? ?横向制表符 | |
\v?? ?纵向制表符 |