У меня есть файл с именем cmd, который содержит список команд Unix следующим образом:
hostname
pwd
ls /tmp
cat /etc/hostname
ls -la
ps -ef | grep java
cat cmd
У меня есть другой скрипт, который выполняет команды в cmd как:
IFS=$'\n'
clear
for cmds in `cat cmd`
do
if [ $cmds ] ; then
$cmds;
echo "****************************";
fi
done
Проблема в том, что команды в cmd без пробелов работают нормально, но те, у которых пробелы, не корректно интерпретируются сценарием. Следующий вывод:
patrick-laptop
****************************
/home/patrick/bashFiles
****************************
./prog.sh: line 6: ls /tmp: No such file or directory
****************************
./prog.sh: line 6: cat /etc/hostname: No such file or directory
****************************
./prog.sh: line 6: ls -la: command not found
****************************
./prog.sh: line 6: ps -ef | grep java: command not found
****************************
./prog.sh: line 6: cat cmd: command not found
****************************
Что мне здесь не хватает?