Hi,
when I try to redirect input and the command is described as a string within an array redirection does not work. why?
#!/bin/bash
dir=("tail < ./hello.txt")
tail < ./hello.txt #works
${dir[0]} #does not work
Hi,
when I try to redirect input and the command is described as a string within an array redirection does not work. why?
#!/bin/bash
dir=("tail < ./hello.txt")
tail < ./hello.txt #works
${dir[0]} #does not work
dir=("tail < ./hello.txt") is the equivalent of dir="tail < ./hello.txt"
You are assigning a string to a variable.
echo $dir will show you the string tail < ./hello.txt and not the execution of the command.
By the way, you do not need redirection. tail can read from the file without extra help as tail hello.txt
dir=$(tail hello.txt) will assign the result of executing the command into the variable dir.
dir="tail hello.txt"
eval $dir
That will evaluate the string tail hello.txt as a command.
Therefore,
eval ${dir[0]} will do the same.
Hi thanks eval worked!
tail was just a placeholder for another program