alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias vi='vim'

4.12.2. How Does It Work?

When the kernel receives a request to execute a file (and that file is executable), it uses magic number codes at the start of the file to determine how to execute it. For example, there are magic numbers for standard Executable and Linking Format (ELF) binaries and historical assembler output ( a.out ) binaries; the kernel will use them to set up the correct execution environment and then start the program.

If the first two bytes of the file are #! , which counts as a magic number, the file is treated as a script: a pathname is read from the file starting at the third byte and continuing to the end of the first line. The shell or interpreter program identified by this pathname is executed, and the script name and all arguments are passed to the interpreter.

If a file has no magic number or shebang line, the kernel will attempt to execute it as though the value of the SHELL environment variable were given on the shebang line.

4.12.3. What About...

4.12.3.1. ...interacting with the user through the graphical user interface?

Other scripting languages such as Perl and Python can be used to construct full-scale GUI applications, but the zenity program enables a shell script to interact with a GUI user.

zenity presents a simple dialog or information box to the user. There are a number of dialog types available, including information and error boxes, text entry and editing boxes, and date- selection boxes; the type of dialog as well as the messages that appear in the dialog are configured by zenity options.

Here is the number-guessing script rewritten to use zenity for the user interface:

#!/bin/bash

#

# number-guessing game - GUI version

#

# If the user entered an argument on the command

# line, use it as the upper limit of the number

# range

if [ '$#' -eq 1 ]

then

 MAX=$1

else

 MAX=100

fi

# Set up other variables

SECRET=$(( (RANDOM % MAX) + 1 )) # Random number 1-100

TRIES=0

GUESS=-1

# Display initial messages

zenity --info --text

'I have a secret number between 1 and $MAX. Try and guess it!'

--title 'Guess-It'

# Loop until the user guesses the right number

while [ '$GUESS' -ne '$SECRET' ]

do

 # Prompt the user and get her input

 ((TRIES++))

 GUESS=$(zenity --entry --text 'Enter guess #$TRIES:' --title 'Guess...')

 # Display low/high messages

 if [ '$GUESS' -lt '$SECRET' ]

 then

  zenity --info --text 'Too low!'

 fi

 if [ '$GUESS' -gt '$SECRET' ]

 then

  zenity --info --text 'Too high!'

 fi

done

# Display final messages

zenity --info --text 'You guessed it! It took you $TRIES tries.' --title 'Congratulations!'

Figure 4-16 shows the zenity dialogs produced by this script. Obviously, this user interface is not as refined as one that could be provided by a full-featured GUI application, but it is perfectly suitable for simple interactions.

Figure 4-16. zenity dialogs

4.12.4. Where Can I Learn More?

Вы читаете Fedora Linux
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату