ubuntuのshellのdash、組込shell変数の利用でbashとの違い
1.概要
Linuxではbash shellを利用しているケースが多いのですが、Ubuntuはdash shellを利用していると聞いたことがありました。あまり大差はないと思って気にしたこともなかったのですが、組込shell変数の利用で差異を認識したので、その内容を記述します。
2.詳細
組込shell変数の$RANDOM利用に関してです。
terminalで処理をします。
echo $RANDOM
12014
乱数が普通に表示されます。
これをshell scriptに変更します
test.shを作成します
#!/bin/bash
echo $RANDOM
実行します。
sh test.sh
結果は何も表示されません
bashを指定して実行します
/bin/bash test.sh
1521
乱数が表示されます。
shを調べてみるとdashが利用されています
which sh
/usr/bin/sh
ls /usr/bin/sh -l
lrwxrwxrwx 1 root root 4 12月 11 2024 /usr/bin/sh -> dash
ls -l /bin/sh
lrwxrwxrwx 1 root root 4 12月 11 2024 /bin/sh -> dash
ls -l /bin/dash
-rwxr-xr-x 1 root root 125688 3月 23 2022 /bin/dash
ls -l /bin/bash
-rwxr-xr-x 1 root root 1396520 3月 14 2024 /bin/bash
通常ならば気にすることはありませんが、差異があることは認識が必要です。
参考
【Linux】sh/bash/sourceの違い,bash/dashの違い
https://milestone-of-se.nesuke.com/sv-basic/linux-basic/sh-bash-source/
コメント
コメントを投稿