Bash problema de script em ecoar o diretório de trabalho atual

0

Eu tenho este código:

#!/bin/bash 

#clear screen
clear 

# Ask for name of directory to create
echo "Please enter a directory name"
echo "that you wish to create"
read dir1

# create directory
mkdir $dir1

# change to the newly created directory
cd $dir1

# Tell user where he/she is
echo "This directory is called 'pwd'"


# create some files
touch file1 file2 file3


# put in some content 
echo "This is $dir1/file1" > file1
echo "This is $dir1/file2" > file2
echo "This is $dir1/file3" > file3



# announce file names
echo "The files in $dir1 are: "
ls -hl

# show the contents  of the files
echo "The content of the files are: "
cat file1
cat file2
cat file3


echo "Goodbye"

A linha com echo "Este diretório é chamado de 'pwd'" se recusa a fornecer o diretório de trabalho atual conforme o esperado. Por favor me ajude a resolver este problema, atualmente estou aprendendo BASH SHELL SCRIPTING

    
por George Udosen 18.05.2016 / 14:02

2 respostas

1

Você tem que usar

echo "This directory is called $(pwd)"

O que você está tentando fazer é chamado substituição de comando . Isso costumava ser feito usando backticks ( ' ' ), mas a maneira recomendada atualmente é usar $() .

Você pode encontrar uma explicação detalhada nesta página da wiki.

    
por Wayne_Yux 18.05.2016 / 14:11
2

Para obter o diretório de trabalho atual como uma variável :

echo $PWD

(maiúsculas) ou use o comando

pwd

Depois, usando a variável , a linha deve ser:

echo "This directory is called '$PWD'"

Saída:

This directory is called /home/jacob
    
por Jacob Vlijm 18.05.2016 / 14:11