Похоже, это невозможно в соответствии с их документами. Вы можете сделать что-то вроде метки в верхнем регистре только с помощью функции обратного вызова
xAxes: [{
ticks: {
fontSize: 16,
callback: v => v === 'Blue' ? v.toUpperCase() : v
}
}]
.
Попробуйте изменить одну строку на eval $ cmds
, а не просто на $ cmds
Вы можете заменить свой скрипт командой
sh cmd
. Работа оболочки заключается в том, чтобы читать команды и запускать их! Если вам нужны индикаторы вывода / прогресса, запустите оболочку в подробном режиме
sh -v cmd
Изменить: Оказывается, это не работает на каналах и перенаправлении. Спасибо, Андомар.
Вам нужно снова изменить IFS
внутри цикла, чтобы bash знал, где разделить аргументы:
IFS=$'\n'
clear
for cmds in `cat cmd`
do
if [ $cmds ] ; then
IFS=$' \t\n' # the default
$cmds;
echo "****************************";
IFS=$'\n'
fi
done
РЕДАКТИРОВАТЬ: В комментарии Бена Бланка указано, что мой старый ответ был неправильным, спасибо.
Похоже, вы выполняете команды как одну строку, поэтому bash видит их как скрипт / имя исполняемого файла.
Один из способов избежать этого - вызвать команду bash. Изменение: с
if [ $cmds ] ; then
$cmds;
echo "****************************";
fi
на
if [ $cmds ] ; then
bash -c $cmds
echo "****************************";
fi
Мне лично этот подход больше нравится - я не хочу изменять IFS , если мне это не нужно. Вам действительно нужно использовать eval, если вы собираетесь использовать каналы в своих командах. Канал должен обрабатываться оболочкой, а не командой. Я считаю, что оболочка разбирает каналы до раскрывающихся строк.
Обратите внимание, что если ваш файл cmd содержит команды, которые принимают ввод, возникнет проблема. (Но вы всегда можете создать новый fd для команды чтения, из которой будет выполняться чтение.)
clear
while read cmds
do
if [ -n "$cmds" ] ; then
eval $cmds
echo "****************************";
fi
done < cmd
sed 'aecho "-----------"' cmd > cmd.sh; bash cmd.sh
sed 'aXX' добавляет XX к каждой строке. Это не будет работать для многострочных команд, таких как:
for f in *
do
something $f
fi
, но для однострочных команд в большинстве случаев должно работать.