7

bashを使用して、オペレーティングシステムを検索し、ユーザーに通知したいと思います。私は試した:

OS='uname -s'
echo "$OS"
if [ "$OS" == 'Linux' ]; then
    echo "Linux"
else 
    echo "Not Linux"
fi

私はただ得る

uname -s 
Not Linux

ターミナルで、それは間違っています。文字列をunameが返すものに正しく設定するにはどうすればよいですか?

ありがとう

4

2 に答える 2

13

一重引用符ではなく、おそらくバッククォートを使用するつもりでした。

OS=`uname -s`

しかし、あなたは本当に欲しい

OS=$(uname -s)

また、最終的にif / elseシリーズになるifステートメントではなく、caseの使用を検討することもできます。

case $( uname -s ) in
Linux) echo Linux;;
*)     echo other;;
esac
于 2012-05-24T11:52:01.120 に答える
1

これにより、要求どおりに OS が返されunameます。必ずしもすべての OS で利用できるとは限らないため、この回答の一部ではありません。

case "$OSTYPE" in
  linux*)   echo "linux" ;;
  darwin*)  echo "mac" ;; 
  msys*)    echo "windows" ;;
  solaris*) echo "solaris" ;;
  bsd*)     echo "bsd" ;;
  *)        echo "unknown" ;;
esac
于 2014-10-15T02:09:41.180 に答える