Существует названная программа gksudo
который просит у пользователя собственный пароль этого пользователя, не пароля root. Не забывайте добавлять этого пользователя к группе колеса или sudoers.
Вы заключили в одинарные кавычки '/ home / rafaeldaddio / Documents / teste / *'
. Это означает, что он ищет один файл с именем *
внутри teste
. (Сомневаюсь, что у вас есть такой файл, или это то, что вы задумали!).
Это означает, что ваш цикл for
работает с одной записью и передает этот файл *
в basename.
Затем out = $ (basename $ arqin)
расширяется до out = $ (basename file1 file2 file3 ... fileN)
, что, конечно, слишком много аргументов для basename .
Простое решение: уберите цитаты из примерно / home / rafaeldaddio / Documents / teste / *
.
@BenXO уже говорил вам, почему это провалилось, но вам все равно не нужен сценарий для чего-то настолько простого. Вы можете просто вставить это прямо в командную строку:
for arqin in /home/rafaeldaddio/Documents/teste/*; do
cat "$arqin" |
/home/rafaeldaddio/Documents/LX-Tagger/POSTagger/Tagger/run-Tagger.sh > \
/home/rafaeldaddio/Documents/$(basename "$arqin");
done
Или, так как если cat foo | программа
работает, программа foo
почти наверняка тоже работает, и если предположить, что /home/rafaeldaddio/
- это ваш домашний каталог, то вы можете упростить его:
for arqin in ~/Documents/teste/*; do
~/Documents/LX-Tagger/POSTagger/Tagger/run-Tagger.sh "$arqin" > \
~/Documents/$(basename "$arqin");
done