使用sudo执行脚本时无法运行

4

Linux bash脚本:

function Print()
{
    echo $1
}
Print "OK"

该脚本直接执行可以成功运行,但使用sudo运行时会出现错误:

alex@alex-linux:~/tmp$ ./sample-script 
OK
alex@alex-linux:~/tmp$ sudo ./sample-script 
[sudo] password for alex: 
./sample-script: 1: Syntax error: "(" unexpected

为什么会出错呢?

2个回答

7

你是否拥有

#!/bin/bash

作为脚本的第一行?可能需要这样做。

6
也许root有一个不支持那种语法的不同默认shell。

1
这很可能是正确的答案。如果root的shell是dash,那么function关键字将无效。对于任何其他POSIX shell也是如此。Bash shebang工作的事实强烈表明这正是问题所在。 - Tim Post

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接