sudobashfile产生语法错误

sudobashfile产生语法错误,bash,cron,crontab,sudo,du,Bash,Cron,Crontab,Sudo,Du,我有一个bash文件,我想通过sudo crontab列表切换它。问题是,它不起作用,因为当我用sudo运行脚本时,这一行有一条语法错误消息: size=(`du -h $backupDir --summarize`) 如果我运行相同的脚本而没有,我必须键入sudo pw,但是它工作没有任何问题。 我allready尝试了一些带括号的变体,带或不带背景标记,带或不带空格,等等,但没有任何帮助。错误消息是: Syntax error: "(" unexpected (expecting ";;"

我有一个bash文件,我想通过sudo crontab列表切换它。问题是,它不起作用,因为当我用sudo运行脚本时,这一行有一条语法错误消息:

size=(`du -h $backupDir --summarize`)
如果我运行相同的脚本而没有,我必须键入sudo pw,但是它工作没有任何问题。 我allready尝试了一些带括号的变体,带或不带背景标记,带或不带空格,等等,但没有任何帮助。错误消息是:

Syntax error: "(" unexpected (expecting ";;")

有什么帮助吗?

为了便于阅读,请使用
$()
表单

size=$(du -h $backupDir --summarize)
如果你想坚持使用反引号,那么

size=`du -h $backupDir --summarize`

为了便于阅读,请使用
$()
表单

size=$(du -h $backupDir --summarize)
如果你想坚持使用反引号,那么

size=`du -h $backupDir --summarize`

这里的问题是您使用bash语法,脚本(从cron执行时)由
/bin/sh
解释(对于数组和
()
构造一无所知)

您必须使用she-bang符号将
bash
指定为脚本的解释器:

#!/bin/bash
或者使用cron中的
bash
显式运行脚本:

bash /path/to/script

或者重写脚本,使其可以在没有数组的情况下运行。

这里的问题是使用bash语法,脚本(从cron执行时)由
/bin/sh
解释(对于数组和
()
构造一无所知)

您必须使用she-bang符号将
bash
指定为脚本的解释器:

#!/bin/bash
或者使用cron中的
bash
显式运行脚本:

bash /path/to/script

或者重写脚本,使其可以在没有数组的情况下运行。

最好同时引用这两种脚本<代码>大小=“`cmd--args`”
size=“$(cmd--args)”
@c00kiemon5ter-虽然这不会造成伤害,但变量赋值的右侧不需要它。最好同时引用这两个参数<代码>大小=“`cmd--args`”
size=“$(cmd--args)”
@c00kiemon5ter-虽然这不会造成伤害,但变量赋值的右侧不需要它。脚本是否有bash shebang<代码>#/usr/bin/env bash或至少
#/bin/bash
在bash中有效,并且应该从命令的输出创建一个数组。另外,您似乎没有正确关闭
case
语句,因此
期望;
。发布脚本会有所帮助。#!/bin/bash是问题所在;)所有case语句都正确关闭:/脚本是否有bash shebang<代码>#/usr/bin/env bash或至少
#/bin/bash
在bash中有效,并且应该从命令的输出创建一个数组。此外,您似乎没有正确关闭
case
语句,因此
期望;
。发布脚本会有所帮助。#!/bin/bash是问题所在;)正确关闭的所有case语句:/