Как уже говорили другие, чтобы получить значение переменной, вам нужно поставить префикс имени переменной с унарным оператором $
. Постарайтесь соответствовать вашей цитате (если сомневаетесь, заключите ее в кавычки) и вставьте код в функции (и циклы if
, while
и т. Д.), Что делают все опытные программисты.
renamer () {
# Indenting makes the code easier to read
# copying positional parameters to a named parameter (variable)
# is a good thing, but be consistent
temp="$1"
# Adding quotes preserves additional whitespace in the text
# and preserves whitespace in the filename
echo "a test" >> "$temp"
# Probably better to use cp(1)
# You used $temp before, so why not here too?
# Should this copy be done first? See the comment by @tripleee
cp "$temp" "new.$temp"
}
# Preserve additional whitespace in the text by quoting
echo "this is" > b
renamer b
Вы могли бы разумно сказать, что то, что я предлагаю, - это больше работы, но дисциплина кодирования принесет дивиденды позже, когда вы будете иметь дело с большими и более сложными сценариями.