• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af bigblop | 12.03.2008 00:11

Hjælp til bash script

Hjælp generelt
Jeg har lavet et bash script som konvertere nogle figurer/billeder. Men findes der en måde at:

1) Tjekke at fx filtypen .png, .eps etc eksistere før der forsøges at konvertere.

2) Kun konvertere hvis originalerne har ændret sig siden sidste konvertering (ala make)

Konverteringen udføres i nedenstående loops, hvis i har forslag til andre forbedringer som kom gerne med dem!

#!/bin/bash

# Enter below:
START=/home/bob/Desktop/test/ # Location of .tex files.
INC=pic/ # Location of images and figures.
TEXFILE=test # Name of main .tex file to compile (without extension)

# Based on above config.
DVIFILE=${TEXFILE}.dvi # Name of main .dvi file.
PSFILE=${TEXFILE}.ps # Name of main .ps file.
latex=1 # Convert to eps.
pdflatex=2 # Convert to pdf.
userinput=$@ # If pdflatex or latex should be used.


# latex: PDF + PNG >> PS and FIG >> EPS + PDF
if [ $userinput == $latex ];then
# Convert
cd $INC
for i in *pdf; do j=`echo $i |sed -e 's/.pdf//'`; pdf2ps "$i" ${j}.ps; done;
for i in *png; do j=`echo $i |sed -e 's/.png//'`; convert "$i" ${j}.ps; done;
for i in *fig; do j=`echo $i |sed -e 's/.fig//'`; figtex2pdf -k "$i"; done;

# Compile
cd $START
latex $TEXFILE
dvips $DVIFILE
epstopdf $PSFILE
fi

# pdflatex: EPS + PS >> PDF and FIG >> PDF
if [ $userinput == $pdflatex ];then
# Convert
cd $INC
# Might throw error!
# for i in *ps; do j=`echo $i |sed -e 's/.ps//'`; epstopdf "$i"; done;
for i in *ps; do j=`echo $i |sed -e 's/.ps//'`; ps2pdf "$i"; done;
for i in *fig; do j=`echo $i |sed -e 's/.fig//'`; figtex2pdf "$i"; done;

# Compile
cd $START
pdflatex $TEXFILE
fi
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer3

# 1

17 år 4 måneder siden

Permalink

Indsendt af divineant den 12. marts 2008 kl. 01:20

Permalink

Re: Hjælp til bash script

Tjek om fil eksisterer

file=$1
if [ -e $file ]; then
echo $file eksisterer;
else
echo $file eksisterer ikke;
fi


Hvilken er nyest:

file1=$1
file2=$2
if [ $file1 -nt $file2 ]; then
echo $file1 er nyest;
else
echo $file2 er nyest;
fi


Bemærk iøvrigt at programmet der bliver kørt når du laver en [ EXPRESSION ] er "test", så "man test" er en glimrende kilde til bash script oplysninger.
  • Log ind eller opret dig for at tilføje kommentarer

# 2

17 år 4 måneder siden

Permalink

Indsendt af bigblop den 12. marts 2008 kl. 10:43

Permalink

Re: Hjælp til bash script

Ok det jeg skal bruge er mere om et directory indeholder fx pdfer. Jeg har prøvet med:


pdf=*.pdf
if [ $pdf != '*.pdf' ]; then
echo $pdf #eksisterer;
fi

Men hvis der er flere end een pdf så får jeg en fejl om at der er for mange argumenter. Er der en mere elegant måde at gøre ovenstående på eller findes der en operator som piller den første streng udad $pdf ($pdf[0] dur ikke).
  • Log ind eller opret dig for at tilføje kommentarer

# 3

17 år 4 måneder siden

Permalink

Indsendt af divineant den 12. marts 2008 kl. 11:15

Permalink

Re: Hjælp til bash script

det er fordi din $pdf variabel er oprettet som en streng. hvis du istedet gør således:

pdf=(*.pdf)

får du et array hvor du kan validere på ${pdf[0]}
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

den er sjov 3
PCLinuxOS 29
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !