LINUX.ORG.RU

История изменений

Исправление HighMan, (текущая версия) :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

UPD Ларчик просто открывался…

eval sudo -u highman cat /home/highman/test.sh 
#!/bin/bash
#....

В главном скрипте ту монструозную конструкцию переделал на:

eval sudo -u ${conf['user']} hsh-install ${conf['verbose']} "${conf['install']}"

И все заработало!!!

Остались вопросы по башевским «подстановкам» типа ${line%%:=}, ${line#=}. Я вижу как они работают.

В первом варианте оно из строки, которая лежит в переменной line, выгрызает левую часть до ‘=’, во втором - правую часть после ‘=’, но эти записи я не понимаю.

Где можно почитать о подобной магии?

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

UPD Ларчик просто открывался…

eval sudo -u highman cat /home/highman/test.sh 
#!/bin/bash
#....

В главном скрипте ту монструозную конструкцию переделал на:

eval sudo -u ${conf['user']} hsh-install ${conf['verbose']} "${conf['install']}"

И все заработало!!!

Остались вопросы по башевским «подстановкам» типа ${line%%:=}, ${line#=}. Я вижу как они работают.

В первом варианте оно из строки выгрызает левую часть до ‘=’, во втором правую часть после ‘=’, но эти записи я не понимаю.

Где можно почитать о подобной магии?

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

UPD Ларчик просто открывался…

eval sudo -u highman cat /home/highman/test.sh 
#!/bin/bash
#....

В главном скрипте ту монструозную конструкцию переделал на:

eval sudo -u ${conf['user']} hsh-install ${conf['verbose']} "${conf['install']}"

И все заработало!!!

Остались вопросы по башевским «подстановкам» типа ${line%%:=}, ${line#=}. Я вижу как они работают.

В первом варианте оно из строки выгрызает левую часть до ‘=’, во втором правую часть после ‘=’, но эти записи я не понимаю.

Где можно почитать о подобной магии?

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

UPD Ларчик просто открывался…

eval sudo -u highman cat /home/highman/test.sh 
#!/bin/bash
#....

# В главном скрипте ту монструозную конструкцию переделал на:
eval sudo -u ${conf['user']} hsh-install ${conf['verbose']} "${conf['install']}"

И все заработало!!!

Остались вопросы по башевским «подстановкам» типа ${line%%:=}, ${line#=}. Я вижу как они работают.

В первом варианте оно из строки выгрызает левую часть до ‘=’, во втором правую часть после ‘=’, но эти записи я не понимаю.

Где можно почитать о подобной магии?

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

UPD Ларчик просто открывался…

eval sudo -u highman cat /home/highman/test.sh 
#!/bin/bash
#....

# В главном скрипте ту монструозную конструкцию переделал на:

eval sudo -u ${conf[‘user’]} hsh-install ${conf[‘verbose’]} «${conf[‘install’]}»

И все заработало!!!

Остались вопросы по башевским "подстановкам" типа ${line%%:=*}, ${line#*=}. Я вижу как они работают.

В первом варианте оно из строки выгрызает левую часть до '=', во втором правую часть после '=', но эти записи я не понимаю.

Где можно почитать о подобной магии?

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

Такая заморока из-за того, что этот сраный hsh-install работает ТОЛЬКО от юзера. Потому его приходится вызываеть через sudo -u и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

Исправление HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!

Если делать без sudo, то ни какой ругани на eval нет.

Исходная версия HighMan, :

Где-то до этого в том длинном скрипте кто-то портит конфиг шелла наверно, что он перестаёт разбивать переменные по пробелам.

Попробовал в моем основном скрипте вызвать eval apt-get …. и все заработало!

Казалось бы Эврика!

Но нет.

Не все так просто.

В главном скрипте наворочено ой-ой!

sudo -u ${conf['user']} eval hsh-install ${conf['verbose']} "${conf['install']}"

и тут…

sudo: eval: command not found

Взял и на своей машине (Fedora 37 Workstation) из под root:

sudo -u highman eval cat vpn.sh 
sudo: eval: command not found

Снова затык!