我想运行以下脚本
#!/bin/sh
temp =`date +%Y%m%d`
echo "$temp"
但这没有按预期运行,它抛出此错误消息 temp: execute permission denied
你有
temp =`date +%Y%m%d`
^
因此,您需要删除 and 之间的temp
空格date
:
#!/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
temp
变量需要分配不带空格。
您的脚本确实有语法错误,修复它删除temp
第二行后的空格,但这个错误不会抛出
execute permission denied
but line 2: temp: command not found
.
您的脚本没有执行权限,要修复它调用:
chmod +x FILE.sh
FILE
该脚本的名称在哪里。
在 sh 脚本(不仅仅是 bash)中,分配变量时不接受等号,因为您可以执行以下操作:
VARIABLE=something ./runcommand
将该变量导出到 ./runcommand 子进程,但通常不会导出到所有子进程。
如果允许空格,则无法区分赋值的结尾和命令行的开头。
我在上面的代码中发现了错误,我在字符串后面允许了一个空格temp
。这导致了错误。