红联Linux门户
Linux帮助

sh脚本问题

发布时间:2010-09-16 22:20:49来源:红联作者:qq22049023
[i=s] 本帖最后由 qq22049023 于 2010-9-17 16:26 编辑 [/i]

a.sh
内容如下
#!/bin/bash
$then ="abc"
service mysqld restart
#/etc/init.d/mysql start
~
为什么我用crontab执行这个sh 文件的时候提示
/root/reboot.sh: line 2: =abc: command not found
/root/reboot.sh: line 3: service: command not found

可是单单一个reboot的命令又能执行

我直接在命令窗口直接sh a.sh就可以执行

这是什么原因?
文章评论

共有 6 条评论

  1. qq22049023 于 2010-09-17 15:13:14发表:

    [i=s] 本帖最后由 qq22049023 于 2010-9-17 15:21 编辑 [/i]

    引用:
    变量的定义和赋值方法,见 3# sauntor 楼。

    为了使脚本通用,如果不使用绝对路径,那么在开头加上一行
    PATH=******* (把*****换成路径)
    这样就不会找不到命令了

    以#开头的内容是注释,不执 ...
    相思爱文 发表于 2010-9-17 13:19


    /etc/init.d/mysql start 提示没有这个文件
    /etc/init.d/mysql这个是绝对路径

    下面这两个命令都没问题
    echo "hello"
    mv /var/samba/1.raw /root/1.raw
    不过还是谢谢楼上几位

  2. 相思爱文 于 2010-09-17 13:19:19发表:

    变量的定义和赋值方法,见 3# sauntor 楼。

    为了使脚本通用,如果不使用绝对路径,那么在开头加上一行
    PATH=******* (把*****换成路径)
    这样就不会找不到命令了

    以#开头的内容是注释,不执行的。

    把最后一行的#去掉,而把倒数第二行注释掉,试试能不能进行。

    检查脚本,在相同环境变量下,可把每行在终端单独运行。

  3. linuxcn 于 2010-09-17 10:55:11发表:

    #!/bin/bash

    $then ="abc"
    =>
    then ="abc"

    service mysqld restart

    =>
    /sbin/service mysqld restart


    #/etc/init.d/mysql start

  4. qq22049023 于 2010-09-17 08:05:29发表:

    脚本的名字就是a.sh;
    那个service mysqld start 这个为什么会提示

    我用sh a.sh的时候会运行service mysqld start
    放在crontab里就提示service: command not found

    我单单输一行reboot的时候会重启,

    用/etc/init.d/mysql start时也提示:
    /etc/init.d/mysql: No such file or directory

    我在ssh窗口直接输入/etc/init.d/mysql start可以运行的

  5. sauntor 于 2010-09-17 00:06:33发表:

    脚本变量应当这样定义,str_1="Good Night!";不能加美元符,即不能这样定义: $a="Go!"; q):-s

  6. 相思爱文 于 2010-09-16 23:31:35发表:

    [i=s] 本帖最后由 相思爱文 于 2010-9-16 23:33 编辑 [/i]

    请楼主先说明一下脚本的名字,并解释下每行的意思好吗?
    最好列出脚本全部内容,和脚本要实现什么目的。

    脚本写法有误