Больше awk
решение, которое (чистая) оболочка один, но здесь это так или иначе:
awk 'BEGIN{for(i=32;i<127;i++)printf "%c",i; print}'
Кажется, существует некоторая неоднозначность в способе, которым Вы сформулировали свой вопрос. Вы сказали:
но в сценарии только первый конец строки в переменной
и затем Ваши комментарии предполагают запись функции оболочки - не сценарий.
Я подозреваю, что Вы знаете, что сценарии бесполезны для изменения каталогов, начиная с любого cd
в рамках сценария не распространяет к превосходящей оболочке. Если действительно Вы попытаетесь разработать свой преобразователь каталога в сценарии, то Вам будет нелегко, поскольку стопка каталога не наследована зависимыми оболочками:
$ dirs -l
/home/msw /home/msw/Ubuntu One /home/msw /usr/bin /usr/local /bin /usr/local
$ cat > dirs.sh
dirs -l
$ bash dirs.sh
/home/msw
Вы могли заставить функцию выручать:
$ function passdirs() { bash ndirs.sh `dirs -l -p`; }
$ cat > ndirs.sh
echo $#
echo "$@"
$ passdirs
8
/home/msw /usr/local /usr/bin /bin /usr/local /usr/bin /bin /home/msw
но, конечно, Вам была бы нужна функция к, также производят cd
в текущей оболочке, в этом случае переносящейся и разворачивающей аргументы через командную строку, тяжелая работа заключения в кавычки, таким образом, Вы лучше всего просто делаете все это в функции
$ function cd_pattern() {
cd $(dirs -l -p | grep --max-count=1 -e "$1") ; dirs
}
$ dirs
~ /usr/local /bin /usr/share/doc/evince ~/Ubuntu One
$ cd_pattern v..c
/usr/share/doc/evince /usr/local /bin /usr/share/doc/evince ~/Ubuntu One
который также переключенный на использование $(...)
как синоним для обратных галочек для сокращения беспорядка заключения в кавычки.
Вывод команд может варьироваться в зависимости от того, выполняется ли он в интерактивном режиме или в рамках сценария. Например, "многострочный вывод" идет прекрасный с export
:
#! /bin/bash
L=`export`
echo "$L"
, который дает Вам весь вывод все равно как тогда, когда Вы выполняете его в интерактивном режиме.
Но нет alias
, который ничего не дает Вам.
~/.bashrc
, но тестировал его... барабан... в сценарии. – Alex B 07.09.2010, 08:46