Skip to content
Snippets Groups Projects
Commit cedd34ee authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Beispiele für Unix-Shell-Skripte, 4.4.2022

parent 5698c65b
No related branches found
No related tags found
No related merge requests found
Showing
with 196 additions and 0 deletions
hello-2.c
\ No newline at end of file
hello-1.c
\ No newline at end of file
#include <stdio.h>
int main (void)
{
printf ("Hello, world!\n");
return 0;
}
#include <stdio.h>
int main (void)
{
printf ("Hello, world!\n");
return 0;
}
#!/bin/bash
echo $*
#!/bin/bash
echo $*
cassini/home/peter/bo/2022ss/bs/20220404> chmod +x parameters-1.sh
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh foo bar bas
foo bar bas
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh foo bar baz
foo bar baz
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh "Dies ist ein Test." "Dies auch."
Dies ist ein Test. Dies auch.
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh "Dies ist ein Test." "Dies auch."
Dies ist ein Test. Dies auch.
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-1.sh foo bar baz
foo bar baz
#!/bin/bash
echo $#
echo $*
#!/bin/bash
echo $#
echo $*
echo '$*'
echo "$*"
#!/bin/bash
echo $#
echo $*
echo '$*'
echo "$*"
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-3.sh
0
$*
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-3.sh "Dies ist" "ein Test."
2
Dies ist ein Test.
$*
Dies ist ein Test.
cassini/home/peter/bo/2022ss/bs/20220404> echo Dies ist ein Test.
Dies ist ein Test.
#!/bin/bash
for f in $*; do
echo "Mache was mit der Datei \"$f\""
done
#!/bin/bash
for f in $*; do
echo "Mache was mit der Datei \"$f\""
done
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-4.sh hello*.c
Mache was mit der Datei "hello-1.c"
Mache was mit der Datei "hello-2.c"
cassini/home/peter/bo/2022ss/bs/20220404> ln -s hello-1.c "hello world.c"
cassini/home/peter/bo/2022ss/bs/20220404> ln -s hello-2.c "hello world 2.c"
cassini/home/peter/bo/2022ss/bs/20220404> ls hello\ *.c
'hello world 2.c' 'hello world.c'
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-4.sh hello\ *.c
Mache was mit der Datei "hello"
Mache was mit der Datei "world"
Mache was mit der Datei "2.c"
Mache was mit der Datei "hello"
Mache was mit der Datei "world.c"
#!/bin/bash
for f in "$*"; do
echo "Mache was mit der Datei \"$f\""
done
cassini/home/peter/bo/2022ss/bs/20220404> cat parameters-5.sh
#!/bin/bash
for f in "$*"; do
echo "Mache was mit der Datei \"$f\""
done
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-5.sh hello\ *.c
Mache was mit der Datei "hello world 2.c hello world.c"
cassini/home/peter/bo/2022ss/bs/20220404> ls hello\ *.c
'hello world 2.c' 'hello world.c'
#!/bin/bash
for f in "$@"; do
echo "Mache was mit der Datei \"$f\""
done
#!/bin/bash
for f in "$@"; do
echo "Mache was mit der Datei \"$f\""
done
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-6.sh hello\ *.c
Mache was mit der Datei "hello world 2.c"
Mache was mit der Datei "hello world.c"
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-6.sh "Dies ist" "ein Test."
Mache was mit der Datei "Dies ist"
Mache was mit der Datei "ein Test."
#!/bin/bash
while [ -n "$1" ]; do
echo "Mache was mit der Datei \"$1\""
shift
done
#!/bin/bash
while [ -n "$1" ]; do
echo "Mache was mit der Datei \"$1\""
shift
done
cassini/home/peter/bo/2022ss/bs/20220404> ./parameters-7.sh "Dies ist" "ein Test."
Mache was mit der Datei "Dies ist"
Mache was mit der Datei "ein Test."
File moved
cassini/home/peter/bo/2022ss/bs/20220404> file_template=$(ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null | tail -1)
cassini/home/peter/bo/2022ss/bs/20220404> echo $file_template
parameters-7.sh
cassini/home/peter/bo/2022ss/bs/20220404> ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null | tail -1
parameters-7.sh
cassini/home/peter/bo/2022ss/bs/20220404> ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null
hello-1.c parameters-2.sh 'hello world.c' parameters-6.sh
hello-2.c parameters-3.sh 'hello world 2.c' parameters-7.sh
parameters-1.sh parameters-4.sh parameters-5.sh
cassini/home/peter/bo/2022ss/bs/20220404> ls -rt *.c *.cpp *.sh *.py *.tex *.diff
ls: Zugriff auf '*.cpp' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf '*.py' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf '*.tex' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf '*.diff' nicht möglich: Datei oder Verzeichnis nicht gefunden
hello-1.c parameters-2.sh 'hello world.c' parameters-6.sh
hello-2.c parameters-3.sh 'hello world 2.c' parameters-7.sh
parameters-1.sh parameters-4.sh parameters-5.sh
#!/bin/bash
debug=true
if [ $# -gt 0 ]; then
$debug && echo "parameters = $@"
shift $(( $# - 1 ))
file_template="$1"
else
file_template=$(ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null | tail -1)
fi
$debug && echo "file_template = $file_template"
file_extension=$(echo $file_template | sed -e 's/.*\.\(.*$\)/\1/')
file_base=$(echo $file_template | sed -e 's/\(.*\)\..*$/\1/')
$debug && echo "file_extension = $file_extension"
$debug && echo "file_base = $file_base"
file_number=$(echo $file_base | sed -e 's/^.*-\([0-9]*$\)/\1/')
file_stem=$(echo $file_base | sed -e 's/^\(.*\)-[0-9]*$/\1/')
$debug && echo "file_number = $file_number"
$debug && echo "file_number = $file_stem"
while [ -e "$file_stem-$file_number.$file_extension" ]; do
file_number=$((file_number + 1))
done
new_file_name="$file_stem-$file_number.$file_extension"
$debug && echo "new_file_name = $new_file_name" && read junk
cp -pi "$file_template" "$new_file_name"
#$EDITOR "$new_file_name"
/usr/bin/vim -X -c 'set sw=2' -c 'set expandtab' -c 'set ai' -c 'set nowrap' \
"$new_file_name"
clear
cat "$new_file_name"
cassini/home/peter/bo/2022ss/bs/20220404> ./vic
file_template = parameters-7.sh
file_extension = sh
file_base = parameters-7
file_number = 7
file_number = parameters
new_file_name = parameters-8.sh
^C
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment