编写一个测试脚本:
#!/bin/sh
cd /home/ubuntu
mkdir shell_tut
cd shell_tut
for ((i=0;i<10;i++))
do
touch test_$i.txt
done
输入启动命令:./test.sh,结果报错
root@VM-32-73-ubuntu:/home/ubuntu# ./test.sh
bash: ./test.sh: Permission denied
使用的是root用户,但是仍然提示权限不足。
输入/bin/sh test.sh,可以启动脚本,但语法报错:
root@VM-32-73-ubuntu:/home/ubuntu# /bin/sh ./test.sh
./test.sh: 5: ./test.sh: Syntax error: Bad for loop variable
错误提示循环变量不对。百度了一下该错误,解释如下:
因为Ubuntu为了加快开机速度,用dash代替了传统的bash,而在dash中,循环的编写方法不同。要运行这个脚本,必须使用 bash test.sh。
执行ls -l /bin/*sh可以查看到: