przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
so
»
shell_constructs
»
solutions
so:shell_constructs:solutions
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
~~Zadanie.#~~ <code bash> echo -e "echo hello world\ndate" > plik sh plik </code> ~~Zadanie.#~~ <code bash> echo 'readlink /proc/$$/exe' > plik chmod +x plik ./plik csh ./plik </code> ~~Zadanie.#4~~ <code bash hello_world.sh> #!/bin/sh echo hello world </code> ~~Zadanie.#~~ <code bash arg_2_4.sh> #!/bin/sh echo "Drugi argument: $2" echo "Czwarty argument: $4" </code> ~~Zadanie.#~~ <code bash name_pid_argc_argv.sh> #!/bin/sh echo "\$0: $0" echo "\$\$: $$" echo "\$#: $#" echo "\$@: $@" </code> ~~Zadanie.#8~~ <code bash scriptDir.sh> #!/bin/sh SCRIPTDIR="$(readlink -f "$0")" SCRIPTDIR="${SCRIPTDIR%/*}" echo "$SCRIPTDIR" </code> lub <code bash scriptDir.sh> #!/bin/sh echo "$(dirname $(readlink -e $0))" </code> ~~Zadanie.#~~ <code bash remove_plik.sh> #!/bin/sh if rm plik then echo udało się else echo nie udało się fi </code> ~~Zadanie.#~~ <code bash remove_arg1.sh> #!/bin/sh if rm "$1" then echo udało się else echo nie udało się fi </code> ~~Zadanie.#~~ <code bash check_ar_lt_a2.sh> #!/bin/sh if [ $# -ne 2 ] then echo skrypt nie ma dwóch argumentów exit fi if [ "$1" -lt "$2" ] then echo argumenty są w porządku else echo pierwszy argument nie jest mniejszy niż drugi exit fi </code> ~~Zadanie.#~~ <code bash check_writeable_file.sh> #!/bin/sh if [ -f "$1" -a -w "$1" ] then date >> "$1" else echo "błąd: $1 nie jest zwykłym plikiem lub nie ma praw do zapisów" exit fi </code> ~~Zadanie.#~~ <code bash is_a_sh_script.sh> #!/bin/sh if [ -f "$1" -a -x "$1" ] then FIRSTLINE="$(head -n1 "$1")" if [ "$FIRSTLINE" = "#!/bin/sh" ] then echo "$1 jest wykonywalnym skryptem powłoki" fi fi </code> ~~Zadanie.#~~ <code bash turn_into_a_script.sh> #!/bin/sh if [ ! -f "$1" ] then echo "'$1' nie istnieje lub nie jest zwykłym plikiem" exit fi if [ ! -x "$1" ] then chmod +x "$1" fi FIRSTLINE="$(head -n1 "$1")" if [ "$FIRSTLINE" != "#!/bin/sh" ] then TEMPFILE="$(mktemp -p. || mktemp)" echo '#!/bin/sh' > "$TEMPFILE" cat "$1" >> "$TEMPFILE" chmod --reference="$1" "$TEMPFILE" touch --reference="$1" "$TEMPFILE" mv "$TEMPFILE" "$1" fi </code> ~~Zadanie.#~~ <code bash display_ext_dependant.sh> #!/bin/sh case "${1##*.}" in pdf) pdftotext "$1" -;; zip) unzip -l "$1";; *) cat "$1";; esac </code> ~~Zadanie.#~~ <code bash name_first_last_line.sh> #!/bin/sh for VAR in "$@" # 'in "$@"' można pominąć, bo "$@" jest domyślną listą argumentów dla for do echo "=== $VAR ===" head -n1 "$VAR" tail -n1 "$VAR" done </code> ~~Zadanie.#~~ <code bash powers_exponent.sh> #!/bin/sh for POW in $(seq ${1:-20}) do echo "2**$POW=$((2**POW))" done </code> ~~Zadanie.#~~ <code bash powers_limit.sh> #!/bin/sh E=1 V=2 while ((V<${1:-10000})) do echo "2**$E=$V" V=$((V*2)) E=$((E+1)) done </code> ~~Zadanie.#~~ <code bash next_logfile.sh> #!/bin/sh NUM=0 while [ -e myProg_$NUM.log ] do NUM=$((NUM+1)) done LOG=myProg_$NUM.log date > $LOG </code> ~~Zadanie.#~~ <code bash append_log_ts.sh> #!/bin/sh read LINE echo "$(date): $LINE" >> log </code> ~~Zadanie.#~~ <code bash min.sh> #!/bin/sh read MIN while read NUM do [ -z "$NUM" ] && break [ "$NUM" -lt "$MIN" ] && MIN="$NUM" done echo $MIN </code> ~~Zadanie.#~~ <code bash product.sh> #!/bin/sh while read X Y do echo $((X*Y)) done </code> ~~Zadanie.#~~ <code bash go_through_rotates.sh> #!/bin/bash select FILE in /etc/logrotate.d/* do [[ $REPLY = q ]] && break [[ $FILE ]] || continue echo "===$FILE===" cat "$FILE" done </code> ~~META: language = pl ~~
so/shell_constructs/solutions.1747663299.txt.gz
· ostatnio zmienione: 2025/05/19 16:01 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry