What’s wrong with the following code?
name='$filename | cut -f1 -d'.''
As is, I get the literal string $filename | cut -f1 -d'.', but if I remove the quotes I don’t get anything. Meanwhile, typing
"test.exe" | cut -f1 -d'.'
in a shell gives me the output I want, test. I already know $filename has been assigned the right value. What I want to do is assign to a variable the filename without the extension.
You should be using the command substitution syntax
$(command)when you want to execute a command in script/command.So your line would be
Code explanation:
echoget the value of the variable$filenameand send it to standard outputcutcommandcutwill use the . as delimiter (also known as separator) for cutting the string into segments and by-fwe select which segment we want to have in output$()command substitution will get the output and return its valuenameNote that this gives the portion of the variable up to the first period
.: