Wpis z mikrobloga

Miruny bashowe i świry spod #linux i trochę #programowanie #bash

Chciałbym napisać prosty skrypt, który tworzyłby mi foldery w zależności od tego jaki mamy miesiąc i dzień

w lokalizacji nr 1 (np uzytkownik/dokumenty) tworzył podfolder miesiąca (10.2019). Później podfolder dnia (uzytkownik/dokumenty/10.2019/05.10)

W lokalizacji nr 2 wyłącznie folder z miesiącem - pierwszego dnia miesiąca (uzytkownik/teksty/10.2019)

Do tej pory wpadłem na coś takiego:

#!/bin/bash

# FORMAT DATY W POLECENIU "DATE" JEST TAKI: śro, 2 paź 2019, 19:14:05 CEST

# POBIERZ DATĘ Z KALENDARZA. Z DATY POBIERZ DZIEŃ MIESIĄC I ROK

a=
date | awk '{$2}' '{$3}' '{$4}'

# WEJDŹ DO FOLDERU I STWÓRZ PODFOLDER WEDŁUG POBRANEJ NAZWY MIESIĄC [kropka] ROK

cd /home/kajss/teksty
mkdir $3.$4

# JEŚLI FOLDER O TYM SZABLONIE NAZWY ISTNIEJE - STWÓRZ W NIM PODFOLDER W FORMACIE [zero] DZIEŃ [kropka] MIESIĄC
if [ -d /home/kajss/teksty/$2.$2 ]

then

cd /home/kajss/teksty/$2.$3
mkdir 0$2.$3
fi

EDIT: Ale jedyne co tworzy, to w folderze "teksty" podfolder o nazwie "[zero][kropka]"
  • 7
  • Odpowiedz
@kajss: przyjrzałem się dokładniej co zrobiłeś, kilka powodów dlaczego to nie działa.
pierwsze primo, wpisz sobie date | awk '{$2}' '{$3}' '{$4}' w konsoli - jest błąd, za dużo argumentów.
drugie primo, $2 w awk to wartość z drugiej kolumny, a nie zmienna widoczna na zewnątrz. W tym co robisz wyjście z awk będzie w zmiennej a.
trzecie primo, testujesz istnienie pliku $2.$2 a tworzysz $2.$3
  • Odpowiedz
@dlycs: dzięki totalnie o to chodziło!
@asciiterror: trzecie to literówka, faktycznie.
W takim razie $(date +'/%m') z przykładu @dlycs służy już pobraniu elementu z daty i użycie awk jest kompletnie zbyteczne, prawda?
  • Odpowiedz