paulenot
@paulenot
IT Issue

Как принять аргументы при запуске shell скрипта и передать их утилите?

#!/bin/bash
trim =$1 # как убрать разрешение? . a что если *.ui? как послать вывод ls в массив и весь его обработать?
pyuic5 -x $1 -o $trim'.py' #а тут добавить .py


Интересует как передать первый аргумент в команде(main.ui - c разрешением файла ui ) и вырезать из него .ui :
./build main.ui
и передать его утилите pyuic5, только разница в разрешении файла:
pyuic5 -x ARG(main.ui) -o main + .py
  • Вопрос задан
  • 213 просмотров
Решения вопроса 3
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
а зачем/для чего ???
source=$1
пиши $1 сразу
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
#!/bin/bash
pyuic5 -x $1.ui -o $1


./build main
Ответ написан
paulenot
@paulenot Автор вопроса
IT Issue
Думал я долго, но интересно и работает, хоть и не на bash, а на python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, sys
arg, i = sys.argv, -1
while i != 0:
    file = arg[i]
    if arg[0] != file:
        os.system('pyuic5 -x ' + file + ' -o ' + file[0: -3] + '.py')
        i -= 1
    else:
        break

Выдал права на запуск.

Хорошо справляется с одним файлом:
 ./build mainQtForm1.ui 
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE


или несколькими:
./build mainQtForm1.ui mainQtForm2.ui
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE


Или со всеми *.ui которые найдет
./build *.ui
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE
#Error in input file: not well-formed (invalid token): line 1, column 1  +1 FILE
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы