Я не знаю, как заставить псевдоним работать в CVS, но что можно сделать, записать сценарий, который вызывает энергию путем, Вы хотите.
Сценарий просто был бы:
#!/bin/sh
vim -S ~/myscript.vim "$@"
И затем просто сохраните его где-нибудь в Вашем $PATH
с именем rvim
my-vim
(например, /usr/local/bin/my-vim
), и необходимо смочь использовать my-vim
как команда и на Вашей командной строке и из CVS.
Если Вы не хотите помещать сценарий в глобальный каталог в Вашей системе или не имеете прав на, просто создаете $HOME/bin
, поместите сценарий там и добавьте его к Вашему $PATH
.
Синтаксис str^^
то, которое Вы пробуете, доступно от Bash 4.0 и выше. Возможно, Ваш - более старая версия (или Вы запустили скрипт с sh
явно):
Попробуйте это:
str="Some string"
printf '%s\n' "$str" | awk '{ print toupper($0) }'
Будьте осторожны с tr, если вы не используете только A – Z. Для других локалей даже '[: lower:]' '[: upper:]' не работает, работают только awk-файлы toupper и bash (v4 +)
$ str="abcåäö"
$ echo "$str"|tr '/a-z/' '/A-Z/'
ABCåäö
$ echo "$str"|LC_ALL=sv_SE tr '[:lower:]' '[:upper:]'
ABCåäö
$ echo "$str"|awk '{print toupper($0)}'
ABCÅÄÖ
$ echo ${str^^} # Bash 4.0 and later
ABCÅÄÖ
$ STR="ABCÅÄÖ"
$ echo ${STR,,}
abcåäö
Если кто-то по-прежнему получает ошибку при попытке ${str^^}
, вы можете попробовать python -c
или perl
. Вероятно, это связано с тем, что версия bash ниже 4.
Но до сих пор bash 4 или более поздней версии быстро работает с существующим решением.
L2U="I will be upper"
Использование python -c
в bash
python -c "print('$L2U'.upper())"
I WILL BE UPPER
Точно так же его также можно использовать для капитализации с помощью:
service="bootup.sh on home"
python -c "print('$service'.capitalize())"
Bootup.sh on home
Использованиеperl
echo $L2U | perl -ne 'print "\U$_"'
I WILL BE UPPER
Кроме того, вы можете переключиться на ksh или zsh, которые десятилетиями поддерживали преобразование регистра (задолго до bash
${var^^}
, добавленного в 4.0 ), хотя и с другим синтаксисом:
#! /bin/ksh -
typeset -u upper="$1"
printf '%s\n' "$upper"
(также работает с zsh
; обратите внимание, что в pdksh/mksh это работает только для букв ASCII ).
С помощью zsh
вы также можете использовать флаг расширения параметра U
:
#! /bin/zsh -
printf '%s\n' "${(U)1}"
POSIXLY, вы можете использовать:
awk 'BEGIN{print toupper(ARGV[1])}' "$1"
Есть также:
printf '%s\n' "$1" | tr '[:lower:]' '[:upper:]'
Но в некоторых реализациях, включая GNU tr
, это работает только для однобайтовых -символов (, поэтому в UTF -8 локалей только для букв ASCII ).
tr '[a-z]' [[A-Z]'
. – mtk 16.10.2012, 15:51tr '[a-z]' '[A-Z]'
. – l0b0 17.10.2012, 12:43GNU bash, version 4.3.42(1)-release (x86_64-apple-darwin14.5.0)
, и я получаю ту же ошибку как OP, таким образом, я не думаю, что это доступно на любомbash
4.0 и выше как Вы говорите. – Heath Borders 27.01.2016, 01:19