例を追加

例を追加

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

おすすめ記事