例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(ダッシュ?)を使用します。