Возник вот такой вопрос. Нужно передать скрипту вывод другой команды так чтобы скрипт расценил их как позиционные параметры. Хотелось бы сделать все одной строкой, но не работает:#ls --time-style=long-iso -go --time=status file.txt | test.sh
test.sh печатает число позиц. параметров: echo $# На самом деле печатает 0.
Если перенаправить вывод 'ls' в файл, а потом сказать
#test.sh `cat output_file`то все ОК.
Как-то можно это побороть?
Спасибо.
man xargs
>Возник вот такой вопрос. Нужно передать скрипту вывод другой команды так чтобы
>скрипт расценил их как позиционные параметры. Хотелось бы сделать все одной
>строкой, но не работает:
>
>#ls --time-style=long-iso -go --time=status file.txt | test.sh
>
>test.sh печатает число позиц. параметров: echo $# На самом деле печатает 0.
>
>
>Если перенаправить вывод 'ls' в файл, а потом сказать
>#test.sh `cat output_file`
>
>то все ОК.
>
>Как-то можно это побороть?
>
>Спасибо.
Вы были на полпути к тому, чтобы дойти своим умом до решения.# test.sh `ls --time-style=long-iso -go --time=status file.txt`
# ls --time-style=long-iso -go --time=status file.txt | xargs test.sh
> echo $#
это содержимое скрипта?
то есть, надо просто узнать количество "столбцов"?# ls --time-style=long-iso -go --time=status file.txt | wc -w
Если с этим безобразием надо потом что-то делать, то можно попробовать такой скриптец
a=(`cat`)
echo ${a[0]} # первое слово
echo ${#a[@]} # количество элементов массива