[root@hadoop1 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@hadoop1 ~]# cd /bin
[root@hadoop1 bin]# ll | grep bash
-rwxr-xr-x. 1 root root 964536 4月 1 10:17 bash
lrwxrwxrwx. 1 root root 4 8月 11 16:13 sh -> bash
[root@hadoop1 bin]# echo $SHELL
/bin/bash
脚本以 #!/bin/bash
开头, 表示指定解析器为 /bin/bash
采用 bash
或 sh
+ 脚本的相对路径或绝对路径(不为脚本赋予+x权限)
① sh+脚本相对路径
[root@hadoop1 shell]# sh helloworld.sh
helloworld
② sh+脚本绝对路径
[root@hadoop1 shell]# sh /root/shell/helloworld.sh
helloworld
③ bash+脚本相对路径
[root@hadoop1 shell]# bash helloworld.sh
helloworld
④ bash+脚本绝对路径
[root@hadoop1 shell]# bash /root/shell/helloworld.sh
helloworld
采用 bash
或 sh
+ 脚本的相对路径或绝对路径(不为脚本赋予+x权限)
① 为脚本赋予 +x
权限
[root@hadoop1 shell]# chmod 777 helloworld.sh
[root@hadoop1 shell]# ll
总用量 4
-rwxrwxrwx. 1 root root 30 8月 13 20:50 helloworld.sh
① 脚本相对路径
[root@hadoop1 shell]# ./helloworld.sh
helloworld
② 脚本绝对路径
[root@hadoop1 shell]# /root/shell/helloworld.sh
helloworld
创建一个 Shell 脚本, 输出 'helloworld'
[root@hadoop1 shell]# vim helloworld.sh
#!/bin/bash
echo "helloworld"
[root@hadoop1 shell]# sh helloworld.sh
helloworld
用 shell 命令在 /root/shell
目录下创建一个 a.txt 并在文件中增加 "shell six six six"
[root@hadoop1 shell]# vim batch.sh
#!/bin/bash
cd /root/shell
touch a.txt
echo "shell six six six" >> a.txt
[root@hadoop1 shell]# ll
总用量 8
-rw-r--r--. 1 root root 78 8月 13 21:02 batch.sh
-rwxrwxrwx. 1 root root 30 8月 13 20:50 helloworld.sh
[root@hadoop1 shell]# sh batch.sh
[root@hadoop1 shell]# ll
总用量 12
-rw-r--r--. 1 root root 18 8月 13 21:03 a.txt
-rw-r--r--. 1 root root 74 8月 13 21:02 batch.sh
-rwxrwxrwx. 1 root root 30 8月 13 20:50 helloworld.sh