Prøve

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 24. marts 2017; checks kræver 19 redigeringer .

test  er et UNIX -værktøj til at kontrollere filtyper og sammenligne værdier. Returnerer en returkode på 0 (sand) eller 1 (falsk) afhængigt af evalueringen af ​​udtrykket expr. Udtryk kan enten være unære eller binære. Unære udtryk bruges ofte til at kontrollere status for en fil. Du kan også sammenligne tal og strenge.

Startende med UNIX System III blev værktøjet indbygget, og dets anden form, [. [en]

Brug

Bruges normalt i simple shell-scripts til forskellige former for kontrol. Følgende eksempel vil slette den almindelige test.txt-fil, hvis den findes, eller vise en meddelelse om, at filen ikke eksisterer.

#!/bin/sh hvis test -f test.txt derefter rm test.txt ellers echo 'fil test.txt ikke fundet' fi

For at forkorte scriptkoden skal du bruge paroperatoren '[' som et synonym for test. Paroperatoren kræver et mellemrum mellem parenteser, fordi [ (parentes) er en shell -kommando , og POSIX -kompatible skaller kræver et mellemrum mellem kommandoen og dens argumenter.

#!/bin/sh hvis [ -f test.txt ] derefter rm test.txt ellers echo 'fil test.txt ikke fundet' fi

Startindstillinger

  • -b file sand, hvis filen eksisterer og er en speciel blokenhed.
  • -c file sand, hvis filen eksisterer og er en tegnenhed.
  • -d file true hvis filen eksisterer og er en mappe.
  • -e file er sand, hvis filen eksisterer.
  • -f file sand, hvis filen eksisterer og er en almindelig fil.
  • -g file sand, hvis filen eksisterer og har et gruppe-id (set-group-id) indstillet.
  • -k file sand, hvis filen har den sticky bit indstillet.
  • -L file sand, hvis filen eksisterer og er et symbolsk link.
  • -p file true hvis filen eksisterer og er en navngivet pipe (pipe).
  • -r file sand, hvis filen findes og kan læses.
  • -s file sand, hvis filen eksisterer og har en størrelse større end nul.
  • -S file sand, hvis filen eksisterer og er en socket.
  • -t [fd] sand hvis fd er åben på terminalen. Hvis fd udelades, er standardværdien 1 (stdout).
  • -u file sand, hvis filen eksisterer og har brugerbit (set-bruger-id) indstillet.
  • -w file sand, hvis filen eksisterer og er skrivbar.
  • -x file true, hvis filen eksisterer og er eksekverbar.
  • -O file sand, hvis filen eksisterer, og dens ejer har et effektivt bruger-id.
  • -G file sand, hvis filen eksisterer, og dens ejer har et effektivt gruppe-id.
  • file1 -nt file2 sand, hvis fil1 er nyere (ændret dato) end fil2.
  • file1 -ot file2 sand, hvis fil1 er ældre end fil2.
  • file1 -ef file2 sand, hvis fil1 og fil2 har samme enhed og inodenummer.
  • -z string— sandt, hvis strengens længde er nul.
  • -n string er sand, hvis længden af ​​strengen ikke er nul.
  • string1 = string2 sandt, hvis strengene er ens.
  • string1 != string2 sandt, hvis strengene ikke er ens.
  • ! expr er sandt, hvis expr er falsk.
  • expr1 -a expr2 er sandt, hvis både udtr1 og udtr2 er sande.
  • expr1 -o expr2 er sandt, hvis mindst et af udtrykkene udtr1 eller udtr2 er sandt.
  • arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge - disse binære aritmetiske operationer returnerer sand, hvis arg1 er lig med (-eq), ikke lig med (-ne), mindre end (-lt), mindre end eller lig med (-le), større end (-gt), eller henholdsvis større end eller lig med (-ge) end arg2. arg1 og arg2 kan være positive heltal, negative heltal eller de specielle -l-strengudtryk, der beregner længden af ​​en streng.

Noter

  1. traditionel Bourne shell familie/historie og udvikling . www.in-ulm.de. Hentet 15. juli 2017. Arkiveret fra originalen 14. april 2020.

Links