vipul chauhan vipul chauhan - 6 months ago 14
Bash Question

why questionmark comes in the end of filename when i create .txt file through shell script?

I am writing one shell script in which I am supposed to create 1 text file. When I do this, a question mark comes at the end of file name. what is the reason?

I am trying below methods in bash script.

1)

grep ERROR a1* > text.txt


2)
touch text.txt


In both the methods, instead of
text.txt
, there is a file generated as
text.txt?


what should I do to overcome this?

Answer

Sounds like you script uses \r\n as line endings, this is typical DOS style line endings. Unix like systems uses \n. You should try to remove the line feeds, eg with your favorite text editor:

vim +'set ff=unix | x' my_script

Or with dos2unix:

dos2unix my_script

Or sed:

sed -i 's/\r$//' my_script