У меня есть сценарий, который я в основном закончил, за исключением одной проблемы. Я просто не могу взломать удаление символа перевода строки до того, как он будет передан zbarimg. Я пробовал различные вещи, оглядываясь в Интернете, и, похоже, не может найти ничего, чтобы избавиться от этого надоедливого персонажа. Любая помощь будет принята с благодарностью.Bash - Удаление символа Linefeed из сценария
#!/bin/bash
folder=~/Public
cdate=$(date +"%Y-%m-%d-%H:%M")
inotifywait -m -q -e create -r --format '%:e %w%f' $folder | while read file
do
ifile=$(ls -Art ~/Public | tail -n 1)
ifile2=$(echo $ifile | tr '\n' ' ')
echo $ifile2 >> /tmp/latest.txt
zbarimg $ifile2 | pluma
done
Выход LS -alrt (последние несколько строк)
-rw-r--r-- 1 mintux mintux 875988 Nov 11 12:42 20151111_114942.jpg
-rw-r--r-- 1 mintux mintux 801317 Nov 11 12:45 20151111_114759(2).jpg
-rw-r--r-- 1 mintux mintux 875988 Nov 11 12:45 20151111_114942(2).jpg
-rw-r--r-- 1 mintux mintux 911 Nov 23 23:24 nov23.png
-rw-r--r-- 1 mintux mintux 23158 Nov 23 23:43 nov23a.png
drwxr-xr-x 73 mintux mintux 24576 Nov 24 08:42 ..
drwxr-xr-x 4 mintux mintux 4096 Nov 24 12:10 .
вы пробовали Http: // stackoverflow.com/questions/1654021/how-can-i-delete-a-newline-if-it-is-the-last-character-in-a-file –
Трудно понять, что вы пытаетесь чтобы выполнить без доступа к входу и желаемому выходу. Ваш вопрос будет значительно улучшен, если вы заберете части 'inotifywait' и' zbarimg' и просто сосредоточитесь на фактической модификации строки. Во всяком случае, 'echo $ ifile' без [правильного цитирования] (http://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-variable) уже по совпадению потеряет любую новую строку, но, вероятно, ошибочно из них. – tripleee
Нет '' \ n''. Вы можете доказать это себе: ifile = $ (ls -Art ~/Public | tail -n 1); echo "'$ ifile'" 'Какую новую строку вы пытаетесь удалить с помощью строки' ifile2 = '? ** Примечание: ** в 'echo $ ifile2',' echo' автоматически добавляет новую строку, используйте 'echo -n $ ifile2 >>/tmp/latest.txt', если вы не хотите новой строки после' $ ifile2'. –