
ユーザーにファイル名を尋ね、そのファイルを作成するスクリプトを作成するにはどうすればよいですか?
私はすでにこれを試しました:
#!/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