Scripting question

0

Como faço para criar um script que peça ao usuário um nome de arquivo e crie esse arquivo?

Eu já tentei isso:

#!/bin/bash
#Get Script name of this file and create it
#Get Author's name of this file
#Add the date this file is ran
#Add a "Hello"

echo -n "Please type Script destination file name: "
read 0

echo -n "Please type your name: "
read name

if [ -z "$0" ]
then
    echo "No Script name given."
else
    echo "#Script: $0" > $0
fi

if [ -z "$name" ]
then
    echo "No name given."
else
    echo "#Author: $name" >> $0
    echo "#Date: 'date'"  >> $0
fi
    
por HankG 15.03.2015 / 00:42

1 resposta

1

Seu problema é com o uso de $ 0 como um nome de variável. Isso é reservado para o nome do script sendo chamado; tente criar um script com apenas echo $0; . Além disso, cada variável inteira além desta é reservada para os argumentos passados para o script.

Abaixo está uma versão atualizada do seu script que funciona como esperado. Eu mudei $ 0 para $ filename e $ name para $ username.

#!/bin/bash
#Get Script name of this file and create it
#Get Author's name of this file
#Add the date this file is ran
#Add a "Hello"

echo -n "Please type Script destination file name: "
read filename

echo -n "Please type your name: "
read username

if [ -z "$filename" ]
then
    echo "No Script name given."
else
    echo "#Script: $filename" > $filename
fi

if [ -z "$username" ]
then
    echo "No name given."
else
    echo "#Author: $username" >> $filename
    echo "#Date: 'date'"  >> $filename
fi
    
por Arran Schlosberg 15.03.2015 / 01:19