Я попытался придумать сценарий, но закончился время. Можно найти связанное обсуждение здесь:
https://groups.google.com/d/topic/xdotool-users/ns-pHfwQErc/discussion
Сначала Вы создаете сценарий, содержащий Вашу команду и с/bin/bash как интерпретатор; следующим образом:
#!/bin/bash
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
Если бы Вы назвали свой сценарий, например, setDirColors, и Вы делаете его исполняемым файлом, то необходимо выполнить его следующим образом:
. ./setDirColors
Отметьте ведущую точку. Это не опечатка. Вызов Вашего сценария без ведущей точки не будет работать. Почему то, что так? Ваш сценарий установил значение к переменной среды LS_COLORS и "экспортирует" ее... в подпроцессы сценария! не к его родителю!
Для решения этой классической ловушки мы используем ведущую точку, которая является командой удара для выполнения сценария в текущем процессе. Таким образом, сценарий может изменить Вашу текущую переменную среды LS_COLORS.
/bin/bash -x script.sh
выше. Настолько странный. Команда работает просто великолепно от CLI, просто не в сценарии.
– turtle
10.12.2013, 00:32