Shell script vandamál

Skjámynd

Höfundur
BjarniTS
Vaktari
Póstar: 2266
Skráði sig: Fim 06. Ágú 2009 01:51
Reputation: 3
Staða: Ótengdur

Shell script vandamál

Pósturaf BjarniTS » Mið 17. Nóv 2010 12:56

Er í smá dútli með að gera shell scriptu sem á að vera menu , og svo á að vera klukka í hægra horninu.

Menu sem er kominn :


Kóði: Velja allt

#!/bin/sh
echo "
### Veldu annaðhvort a - b - c - d - e ###


• A. Provide a shell prompt

• B. Print help

• C. Output an HTML version

• D. Output a text version

• E. Exit
"
read answer
case $answer in
    a|A)    echo Þú valdir a;;
    b|B)    echo Þú valdir  b;;
    c|C)    echo Þú valdir c;;
    d|D)    echo Þú valdir d;;
    e|E)    echo Þú valdir e;;
      *)    echo Þú valdir ekki a, b ,d or c;;
esac


Uppskrift/leiðbeiningar um svona klukku sem ég fann á netinu :
http://bashscript.blogspot.com/2010/04/ ... -date.html

Kóði: Velja allt

#!/bin/bash
# SCRIPT: digclock.sh
# USAGE:  ./digiclock &
# PURPOSE: Displays time and date in the top right corner of the
#          screen using ANSI escape sequences.
# To stop this digclock use command kill pid.
################################################################

#################### VARIABLE DECLARATION ######################

 # To place the clock on the appropriate column, subtract the
 # length of $Time and $Date, which is 22, from the total number
 # of columns

  Columns=$(tput cols)
  Startpoint=$(($Columns-22))

 # If you're in an X Window System terminal,you can resize the
 # window, and the clock will adjust its position because it is
 # displayed at the last column minus 22 characters.

########################### MAIN PROGRAM #######################

# The script is executed inside a while without conditions.

while :
do
  Time=`date +%r`
  Date=`date +"%d-%m-%Y"`
  echo -en "\033[s"    #save current screen position & attributes

  tput cup 0 $Startpoint

 # You can also use bellow one liner.
 # tput cup 0 $((`tput cols`-22))
 # But it is not efficient to calculate cursor position for each
 # iteration. That's why I placed variable assignment before
 # beginning of the loop

 # print time and date in the top right corner of the screen

  echo -en "\033[42m$Time \033[46m$Date\033[0m"

 #restore current screen position & attributes

  echo -e -n "\033[u"

 #Delay for 1 second

  sleep 1
done


Það sem vandamálið felst í er að ég veit ekki hvernig ég get komið þessum menu til að virka og vera með þessari klukku.

Langar að nota þessa klukku því hún lýtur vel út , en ég get líka notað "date" en hvernig breyti ég staðsetningum á hlutum í shell scriptum ?

MBK

Bjarni


Nörd

Skjámynd

Revenant
</Snillingur>
Póstar: 1031
Skráði sig: Fim 24. Jún 2004 12:36
Reputation: 132
Staða: Tengdur

Re: Shell script vandamál

Pósturaf Revenant » Mið 17. Nóv 2010 13:23

Gætir leyst þetta einhvernveginn svona (hérna geri ég ráð fyrir að þegar notandinn ýtir á a,b,c,d,e þá hoppi hann út úr while lykkjunni)

Kóði: Velja allt

#!/bin/bash

# Naestu tvaer linur segja til um stadsetningu klukkunar
Columns=$(tput cols)
Startpoint=$(($Columns-22))
while :
do
        # Er $answer med eitthvad gildi?
        if [[ ! -z "${answer}" ]] ; then
                break
        fi

  Time=`date +%r`
  Date=`date +"%d-%m-%Y"`

  # Hreinsa skjainn
  clear

  tput sc                 
 #Save the cursor position&attributes
  tput cup 0 $Startpoint

 # You can also use bellow one liner
 # tput cup 0 $((`tput cols`-22))
 # But it is not efficient to calculate cursor position for each
 # iteration. That's why I placed variable assignment before
 # beginning of the loop.

 # print time and date in the top right corner of the screen.

  echo -n $Color1$Time $Color2$Date$Normal

 # restore the cursor to whatever was its previous position
  tput rc


echo "
### Veldu annadhvort a - b - c - d - e ###


. A. Provide a shell prompt

. B. Print help

. C. Output an HTML version

. D. Output a text version

. E. Exit
"
        # Les inn einn staf, med 1 sec timeout
        # thetta er i raun "sleep" i 1 sec nema einhver stafur kemur inn
        read -n 1 -t 1 answer

        case $answer in
    a|A)    echo Thu valdir a;;
    b|B)    echo Thu valdir  b;;
    c|C)    echo Thu valdir c;;
    d|D)    echo Thu valdir d;;
    e|E)    echo Thu valdir e;;
    q|Q)    break;;
      *)    ;;
        esac
done

echo Erum fyrir utan while lykkjuna





Skjámynd

Höfundur
BjarniTS
Vaktari
Póstar: 2266
Skráði sig: Fim 06. Ágú 2009 01:51
Reputation: 3
Staða: Ótengdur

Re: Shell script vandamál

Pósturaf BjarniTS » Fim 18. Nóv 2010 15:35

Takk fyrir þetta , er í NET403 í Tækniskólanum og þetta verður lúmskt skemmtilegt þegar maður kemst upp á lagið með þetta.

Það að þú skulir hafa listað upp þarna hverja aðgerð það hjálpar mér ennþá betur að skilja efnið..


Nörd


coldcut
Vaktari
Póstar: 2192
Skráði sig: Mið 21. Nóv 2007 02:25
Reputation: 0
Staðsetning: /dev/random
Staða: Ótengdur

Re: Shell script vandamál

Pósturaf coldcut » Fim 18. Nóv 2010 20:08

Smelltu á okkur ör-screenshoti hvernig þetta lítur út hjá þér.