Имя файла "$textfile.txt"
не будет работать должным образом, поскольку интерполяция переменной происходит в двойных кавычках, поскольку значение результата переменной $textfile
будет добавлено с .txt
, а результат будет использоваться в качестве имени файла.Если $textfile
не определено (что в большинстве случаев имеет место), .txt
будет использоваться в качестве имени файла.
Чтобы исправить это, используйте одинарные кавычки вокруг имени файла как '$textfile.txt'
или если вам нужно использовать двойныекавычки, экранируйте $
как: "\$textfile.txt"
Но я не вижу проблем с "!textfile.txt"