Вопрос по сценарию

Вопрос по сценарию

Как создать скрипт, который запрашивает у пользователя имя файла, а затем создает этот файл?

Я уже пробовал это:

#!/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

решение1

Ваша проблема связана с использованием $0 в качестве имени переменной. Это зарезервировано для имени вызываемого скрипта; попробуйте создать скрипт только с echo $0;. Более того, каждая целочисленная переменная за этим зарезервирована для аргументов, передаваемых скрипту.

Ниже приведена обновленная версия вашего скрипта, которая работает так, как и ожидалось. Я изменил $0 на $filename и $name на $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

Связанный контент