I have a bad problem and I hope you can give me some ideas! 🙂
What I want to do:
Simply read the user argument of the Script.
What is the problem:
special characters
Let me explain:
Scriptname: testscript
if the user types testscript -f filename.txt it prints out the name. Pretty easy.
But if the user types the following, it does not work for the shell: testscript -f file(somethings)name.txt
so if there are special characters, it always throws an sh: error….
Working: it works if the user writes this: testscript -f ‘filename(something).txt’
with ‘ ‘
But this is inconvenient and often people forget that they have to write it.
Does anyone have an idea what I can do?
I thought about getting the argument and then add ‘ and ‘ at the beginning and end, I am not sure if the shell error is first..
Otherwise, does anyone have an idea!?
Would it be possible to check if there is an () somewhere in the filename before allowing userinput and remove () then?
Unfortunately, there’s nothing your program can really do here – the error your users are seeing comes from the shell, before your program even has a chance to execute.