系统日期变为unix

时间:2013-05-27 08:34:47

标签: date unix sh

我想运行以下脚本

#!/bin/sh
temp =`date +%Y%m%d`
echo "$temp"

但这没有按预期运行 它抛出了这个错误信息temp:执行权限被拒绝

5 个答案:

答案 0 :(得分:8)

你有

temp =`date +%Y%m%d`
    ^

因此,您需要删除tempdate之间的空格:

#!/bin/sh
temp=$(date +%Y%m%d) # better than `exp`, thanks @OliverDulac (see comments)
echo "$temp"

这对我有用。

确保该文件具有执行权限:

chmod +x your_file

或只是用

执行它
/bin/sh /your/script/path/your_file

答案 1 :(得分:0)

temp变量需要在没有空格的情况下分配。

答案 2 :(得分:0)

您的脚本确实有语法错误,要修复它删除第二行temp后的空格,但此错误不会抛出 execute permission deniedline 2: temp: command not found

您的脚本没有执行权限,要修复它调用:

chmod +x FILE.sh

其中FILE是此脚本的名称。

答案 3 :(得分:0)

在sh脚本(不仅仅是bash)中,在分配变量时不接受等号,因为你可以这样做:

VARIABLE=something ./runcommand

将该变量导出到./runco​​mmand子进程,但通常不会导出到所有子进程。

如果允许空格,则无法区分分配的结束与命令行的开头。

答案 4 :(得分:0)

我在上面的代码中发现了错误,我在字符串temp后面允许一个空格。这导致了错误。