Command substitution

Innan vi går vidare går vi igenom något som kallas command substitution. I vissa fall vill man använda resultatet av ett exekverat kommando. Det går att göra på olika sätt och det sker via ett subshell. Vi kikar på det rekommenderade sättet.

#!/usr/bin/env bash
#
# An example script for the linux course

path="$(pwd)" # Saves the result of the command "pwd" in a variable (command substitution)
result=$(ls -al "$path") # Here we use $path (command substitution)

echo "$result" # Prints the result

Resultatet av kommandot ls -al pwd kommer hamna i variabeln result. Kommandot pwd ger den nuvarande mappens sökväg. Vi har alltså använt command substitution. Bra då har vi koll på det.

Man kan även stöta på användandet av back-ticks `command`. Resultatet blir detsamma, men det kan lätt bli problem om man hamnar i en situation där man vill nesta kommandon (köra kommandon i kommandon).

En annan sak att notera är kommandon som tex $(cat file.txt) kan användas på ett snabbare sätt med $(< file.txt)

#Revision history

  • 2019-03-08: (A, lew) Första versionen.

Document source.