プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
CentOS 7、「nice」コマンドを実行したら「nice: Badly formed number.」と怒られた話
結論から書くと

1.csh系にはビルトインコマンドの「nice」コマンドがある
2.ビルトインコマンドか否かでコマンドの書式が違う


のが原因でした。

それでは詳細を書いていきます。

ちょっくら「nice」コマンドの使い方を勉強していましてね。
試しに

nice -n 5 cd

とか、やってみたのです。

そうしたら

nice: Badly formed number.

と怒られてしまいました。

なんでだよ!?Σ( ̄◇ ̄;と半分キレ気味で調べたところ、
以下のことが分かりました。

1.csh系にはビルトインコマンドの「nice」コマンドがある
2.ビルトインコマンドか否かでコマンドの書式が違う


ふむふむ、確かに私が使っているのはtcshです。
試しに

which nice

を実行したところ

nice: shell built-in command.

と表示されました。
確かにビルトインコマンドの「nice」コマンドが動いていますね。

さらに

find / -name nice -print

を実行したところ

/usr/bin/nice

と表示されました。
「/usr/bin/nice」もあるようです。

試しに

/usr/bin/nice -n 5 cd

を実行したところ、エラーにならずに実行できました。

なるほど!
「-n」とかのオプションを指定できるのは
ビルトインコマンドじゃない方の「nice」コマンドなのですね。

その後、あれやこれやと試してみたところ、
ビルトインコマンドの方の「nice」コマンドの書式は

nice 【nice値(優先度)】 【実行するコマンド・プログラム】

だと分かりました。

例えば

nice +5 cd



nice -5 cd

のように指定すると、nice値が「5」や「-5」の状態で「cd」コマンドが実行されます。
なお「+」を付けないで

nice 5 cd

を実行したところ

5: Command not found.

と表示されてエラーになりました。
ビルトインコマンドの「nice」コマンドでnice値を指定する場合は
必ず「+」か「-」の符号を付けて指定してください。

駄目押しで、もう一度書いておくと

1.csh系にはビルトインコマンドの「nice」コマンドがある
2.ビルトインコマンドか否かでコマンドの書式が違う


です。
普段csh系のシェルを使っている人は、ご注意ください。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Linux  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト