cshスクリプトでコマンドが機能しない場合は簡単です。

cshスクリプトでコマンドが機能しない場合は簡単です。

問題は、source overspeed実行権限を付与した後にこのスクリプトを実行すると、設定どおりに「どのくらい早く進行中ですか?」と尋ねますが、値を入力すると代わりに「イベントが見つかりません」というエラーが表示されることです。 「スピードアップしています!!!」

ところで、これは私のスクリプトです。

#!/bin/csh
# Over speed indicator
#
echo -n "How fast are you going?"
set speed = $<
if (speed > 100) echo "You are over speeding!!!"

ベストアンサー1

スクリプトにいくつかのエラーがあります。最初の行は、cshコメントで/usr/bin/csh(not)として識別された実行可能ファイルを指す必要があります/bin/csh。行に変数で識別された内容がありifません。変更されたスクリプトは次のとおりです。$speed

#!/usr/bin/csh
# Over speed indicator
#
echo -n "How fast are you going?"
set speed = $<
if ($speed > 100) echo "You are over speeding\!\!\!"

理想的には、実行するのではなく./overspeed実行して、設定されたsource overspeedすべての変数が対話型シェルを汚染することなく独自のコンテキストに保持されるようにすることです。

これよりも優れていることは、基本的にスクリプトに適していないシェル言語を学ぶ試みをやめ、そのsh変形(kshまたはbash)のいずれかを使用することです。これは書き換え後に使用されるスクリプトですbash

#!/bin/bash
# Over speed indicator
#
read -p "How fast are you going? " speed
if $(( speed > 100 ))
then
    echo 'You are over speeding!!!'
fi

以前と同様に、スクリプトファイルが実行可能な場合./overspeed

おすすめ記事