Existem alguns erros no seu script. A primeira linha deve apontar para o executável csh
, que você identificou nos comentários como /usr/bin/csh
(em vez de /bin/csh
). A linha if
está faltando o $
para identificar speed
como uma variável. Aqui está um script corrigido
#!/usr/bin/csh
# Over speed indicator
#
echo -n "How fast are you going?"
set speed = $<
if ($speed > 100) echo "You are over speeding\!\!\!"
O ideal seria, então, executá-lo como ./overspeed
em vez de source overspeed
, para que qualquer variável definida seja retida em seu próprio contexto, em vez de poluir seu shell interativo.
Melhor do que tudo isso, pare de tentar aprender uma linguagem de shell que é fundamentalmente quebrada para o script e use uma das sh
variants ( ksh
ou bash
). Aqui está seu script reescrito para usar bash
:
#!/bin/bash
# Over speed indicator
#
read -p "How fast are you going? " speed
if $(( speed > 100 ))
then
echo 'You are over speeding!!!'
fi
Como antes, se o arquivo de script for executável, você poderá executá-lo com ./overspeed
.