示例 1。
添加到控制台效果很好
pic@pic:~/Desktop$ a="$(date +%s)"
pic@pic:~/Desktop$ b="$(date +%s)"
pic@pic:~/Desktop$ echo $[a+b]
2844184057
pic@pic:~/Desktop$
示例 2.
都是一样的,不过剧本
pic@pic:~/Desktop$ cat a.sh
#!bin/bash
a="$(date +%s)"
b="$(date +%s)"
echo $[a+b]pic@pic:~/Desktop$ sh a.sh
$[a+b]
pic@pic:~/Desktop$
为什么我会得到不同的结果?如何得到相同的结果?
编辑:
pic@pic:~/Desktop$ ls -l $(command -v sh)
lrwxrwxrwx 1 root root 4 sty 10 2014 /bin/sh -> dash
pic@pic:~/Desktop$ ./a.sh
bash: ./a.sh: Brak dostępu
pic@pic:~/Desktop$
编辑-1:
它就像跑步一样
pic@pic:~/Desktop$ . ./a.sh
2844188704
pic@pic:~/Desktop$
编辑-2:
不起作用
pic@pic:~/Desktop$ chmod +x a.sh
pic@pic:~/Desktop$ ./a.sh
bash: ./a.sh: bin/bash: zły interpreter: Nie ma takiego pliku ani katalogu
pic@pic:~/Desktop$
编辑-3:
已更正
pic@pic:~/Desktop$ cat a.sh
#!/bin/bash
a="$(date +%s)"
b="$(date +%s)"
echo $[a+b]pic@pic:~/Desktop$ ./a.sh
2844189920
pic@pic:~/Desktop$
答案1
您的脚本缺少正确的标头,您的 shebang 行显示
#!bin/bash
那应该是
#!/bin/bash
当前目录的子目录 bin 中不太可能有 bash。因此,您在脚本中的系统上使用 sh (破折号?)