4.12.1. How Do I Do That?

To create a script, simply place commands in a text file. For example, this script will display the ten largest files in the current directory:

ls -lS | tail -n +2 | head -10

Save this file as topten . In order to run the script, you will need to set read and execute permission:

$ chmod a+rx topten

The script can be executed by specifying the directory and filename (or an absolute pathname):

$ ./topten

-rw-r--r-- 1 root root 807103 Jul 12 21:18 termcap

-rw-r--r-- 1 root root 499861 Jul 17 08:08 prelink.cache

-rw-r--r-- 1 root root 362031 Feb 23 08:09 services

-rw-r--r-- 1 root root 97966 Jul 15 11:19 ld.so.cache

-rw-r--r-- 1 root root 92794 Jul 12 12:46 Muttrc

-rw-r--r-- 1 root root 83607 Mar 23 07:23 readahead.files

-rw-r--r-- 1 root root 73946 Jul 13 02:23 sensors.conf

-rw-r--r-- 1 root root 45083 Jul 12 18:33 php.ini

-rw-r--r-- 1 root root 30460 Jul 13 20:36 jwhois.conf

-rw-r--r-- 1 root root 26137 Mar 23 07:23 readahead.early.files

The directory name is required because the current directory ( . ) is not in the list of directories normally searched for commands (called the PATH). To make your script accessible to all users, move it to the /usr/local/bin directory, which appears by default in everyone's PATH:

# mv topten /usr/local/bin

4.12.1.1. Shell and environment variables

bash uses shell variables to keep track of current settings. These shell variables are private to the shell and are not passed to processes started by the shellbut they can be exported , which converts them into environment variables , which are passed to child processes.

You can view all shell and environment variables using the set command:

$ set

BASH=/bin/bash

BASH_ARGC=( )

BASH_ARGV=( )

BASH_LINENO=( )

BASH_SOURCE=( )

BASH_VERSINFO=([0]='3' [1]='1' [2]='17' [3]='1' [4]='release' [5]='i686-redhat-linux-gnu')

BASH_VERSION='3.1.17(1)-release'

COLORS=/etc/DIR_COLORS.xterm

COLORTERM=gnome-terminal

COLUMNS=172

CVS_RSH=ssh

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus- I4CWWfqvE6,guid=e202bd44a31ea8366b20151327662e00

DESKTOP_SESSION=default

DESKTOP_STARTUP_ID=

DIRSTACK=( )

DISPLAY=:0.0

EUID=503

GDMSESSION=default

GDM_XSERVER_LOCATION=local

GNOME_DESKTOP_SESSION_ID=Default

GNOME_KEYRING_SOCKET=/tmp/keyring-FJyfaw/socket

GROUPS=( )

GTK_RC_FILES=/etc/gtk/gtkrc:/home/hank/.gtkrc-1.2-gnome2

G_BROKEN_FILENAMES=1

HISTFILE=/home/hank/.bash_history

HISTFILESIZE=1000

HISTSIZE=1000

HOME=/home/hank

HOSTNAME=bluesky.fedorabook.com

HOSTTYPE=i686

IFS=$' '

INPUTRC=/etc/inputrc

KDEDIR=/usr

KDE_IS_PRELINKED=1

LANG=en_US.UTF-8

LESSOPEN='|/usr/bin/lesspipe.sh %s'

LINES=55

LOGNAME=hank

LS_COLORS='no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01; 05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh= 00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z =00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35: *.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:'

MACHTYPE=i686-redhat-linux-gnu

MAIL=/var/spool/mail/hank

MAILCHECK=60

OLDPWD=/usr/share/wallpapers

OPTERR=1

OPTIND=1

OSTYPE=linux-gnu

PATH=/usr/lib/qt- 3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/hank/bin

PIPESTATUS=([0]='0' [1]='141' [2]='0')

PPID=3067

PRELINKING=yes

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

0

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

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