mirror of https://github.com/tLDP/LDP
new
This commit is contained in:
parent
f3977fc7ce
commit
7844e79cc1
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
# dialog.sh: Using 'gdialog' widgets.
|
||||
# Must have 'gdialog' installed on your system to run this script.
|
||||
|
||||
# This script was inspired by the following article.
|
||||
# "Scripting for X Productivity," by Marco Fioretti,
|
||||
# LINUX JOURNAL, Issue 113, September 2003, pp. 86-9.
|
||||
# Thank you, all you good people at LJ.
|
||||
|
||||
|
||||
#Input error in dialog box.
|
||||
E_INPUT=65
|
||||
# Dimensions of display, input widgets.
|
||||
HEIGHT=50
|
||||
WIDTH=60
|
||||
|
||||
# Output file name (constructed out of script name).
|
||||
OUTFILE=$0.output
|
||||
|
||||
# Display this script in a text widget.
|
||||
gdialog --title "Displaying: $0" --textbox $0 $HEIGHT $WIDTH
|
||||
|
||||
|
||||
# Now, we'll try saving input in a file.
|
||||
echo -n "VARIABLE=\"" > $OUTFILE # Quote it, in case of whitespace
|
||||
#+ in the input.
|
||||
gdialog --title "User Input" --inputbox "Enter variable, please:" \
|
||||
$HEIGHT $WIDTH 2>> $OUTFILE
|
||||
|
||||
|
||||
if [ "$?" -eq 0 ]
|
||||
# It's good practice to check exit status.
|
||||
then
|
||||
echo "Executed \"dialog box\" without errors."
|
||||
else
|
||||
echo "Error(s) in \"dialog box\" execution."
|
||||
# Or, clicked on "Cancel", instead of "OK" button.
|
||||
rm $OUTFILE
|
||||
exit $E_INPUT
|
||||
fi
|
||||
|
||||
|
||||
echo -n "\"" >> $OUTFILE # End quotes on saved variable.
|
||||
# This command stuck down here in order not to mess up
|
||||
#+ exit status, above.
|
||||
|
||||
|
||||
# Now, we'll retrieve and display the saved variable.
|
||||
. $OUTFILE # 'Source' the saved file.
|
||||
echo "The variable input in the \"input box\" was: "$VARIABLE""
|
||||
|
||||
rm $OUTFILE # Clean up by removing the temp file.
|
||||
# Some applications may need to retain this file.
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
# generate-script.sh
|
||||
# Based on an idea by Albert Reiner.
|
||||
|
||||
OUTFILE=generated.sh # Name of the file to generate.
|
||||
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# 'Here document containing the body of the generated script.
|
||||
(
|
||||
cat <<'EOF'
|
||||
#!/bin/bash
|
||||
|
||||
echo "This is a generated shell script."
|
||||
# Note that since we are inside a subshell,
|
||||
#+ we can't access variables in the "outside" script.
|
||||
# Just to prove it . . .
|
||||
echo "Generated file will be named: $OUTFILE" # Won't work.
|
||||
|
||||
a=7
|
||||
b=3
|
||||
|
||||
let "c = $a * $b"
|
||||
echo "c = $c"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
) > $OUTFILE
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Quoting the 'limit string' prevents variable expansion
|
||||
#+ within the body of the above 'here document.'
|
||||
# This permits outputting literal strings in the output file.
|
||||
|
||||
if [ -f "$OUTFILE" ]
|
||||
then
|
||||
chmod 755 $OUTFILE
|
||||
# Make the generated file executable.
|
||||
else
|
||||
echo "Problem in creating file: \"$OUTFILE\""
|
||||
fi
|
||||
|
||||
# This method can also be used for generating
|
||||
#+ C programs, Perl programs, Python programs, Makefiles,
|
||||
#+ and the like.
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue