ubuntu 使用sh 无法执行脚本文件的解决方法

最近刚开始学习linux shell语言

看的是鸟哥的私房菜,里面有讲到执行shell脚本有两种方法:

1. 设置执行属性: chmod 755 file

执行(如果已经在当前目录) :    ./file

2. 使用:  sh file 执行

.但是在vmware里装的ubuntu 11.10却无法执行

#!/bin/bash
declare -i s
for (( i = 1; i <= 100;i = i+1 ))
do 
	s=s+i
done
echo "The count is ==> $s"

使用第二种方法执行时出现 :

test04_for.sh: 1: declare: not found
test04_for.sh: 3: Syntax error: Bad for loop variable


百度了下网上,解决方法:

在终端中输入:

sudo dpkg-reconfigure dash

然后出现的界面中选择 NO

然后就能正确运行了。

Ubuntu系统中,如果你想让一个shell脚本在系统启动时自动执行,可以采用以下几种方法: ### 方法一:使用crontab的@reboot选项 1. 打开终端,输入以下命令编辑crontab文件: ```bash crontab -e ``` 2. 在打开的文件末尾添加以下行: ```bash @reboot /path/to/your/script.sh ``` 将`/path/to/your/script.sh`替换为你的脚本的实际路径。 3. 保存并退出编辑器。 ### 方法二:将脚本添加到/etc/rc.local 1. 打开终端,输入以下命令编辑rc.local文件: ```bash sudo nano /etc/rc.local ``` 2. 在`exit 0`之前添加以下行: ```bash /path/to/your/script.sh & ``` 将`/path/to/your/script.sh`替换为你的脚本的实际路径。`&`符号表示脚本在后台运行。 3. 保存并退出编辑器。 ### 方法三:将脚本添加到启动项 1. 将你的脚本复制到`/etc/init.d/`目录: ```bash sudo cp /path/to/your/script.sh /etc/init.d/ ``` 2. 给予脚本执行权限: ```bash sudo chmod +x /etc/init.d/your_script.sh ``` 3. 使用update-rc.d命令将脚本添加到启动项: ```bash sudo update-rc.d your_script.sh defaults ``` ### 方法四:使用systemd服务 1. 创建一个新的systemd服务文件: ```bash sudo nano /etc/systemd/system/your_script.service ``` 2. 在文件中添加以下内容: ```ini [Unit] Description=Your Script Description After=network.target [Service] ExecStart=/path/to/your/script.sh Restart=always User=your_username [Install] WantedBy=multi-user.target ``` 3. 保存并退出编辑器。 4. 重新加载systemd守护进程: ```bash sudo systemctl daemon-reload ``` 5. 启用并启动服务: ```bash sudo systemctl enable your_script.service sudo systemctl start your_script.service ``` 通过以上方法,你可以选择最适合你的方式来让shell脚本Ubuntu系统启动时自动执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值