功能说明:用root用户执行一个脚本,脚本里需要切换到普通用户DT去执行其他命令,其中就用到了EOF,用法如下: #!/bin/bash su - DT<<EOF cd apache-tomcat-7.0.54/bin sh startup.sh EOF 当时以为su - DT就跟在交换界面执行一样会把环境也切换过去,所以在分界符EOF里用的是相对路径,结果一运行就报错: -bash: line 8: cd: apache-tomcat-7.0.54/bin: 没有那个文件或目录 然后就做了个
1 传递参数的基本格式 在脚本的需要参数的地方写$1,$2,$3...$n,运行的时候带参数运行就相当于是专递参数进shell脚本里了,比如: ./t1.sh 1 2 #!/bin/bash echo "daqing is $1" echo "erqing is $2" echo " u totally give me $# arguements" $#用于统计一共传递了多少个参数进来. 输出结果: daqing is 1;erqin
login shell:第一次登录进系统时的shell,一般是指本机启动时的控制台shell或者ssh远程登录时的shell. interactive shell:登录以后,再打开控制台时运行的shell. none interactive shell:只是用来执行脚本的shell,执行完就结束进程了,没有用户交互过程. mac有个特殊地方:每次打开一个终端都是一个login shell. 检测当前shell是哪种的方法: To check if you are in an interactiv