В академических целях это дало бы входу команды 1k файлы в инкрементах 1 024 байтов путем добавления в тот же файл.
while ((++n<=1024)); do
printf '\0%.s' {1..1024} >&3
xxd -g 1 /dev/stdin; echo # sftp command here
done <<<'' 3>/dev/stdin
Но... метод проб и ошибок? Я нашел бы лучший путь.
Это - важная причина использовать $( )
вместо ` `
(см. то, Что различие между $ (материал) и 'материалом'?)
При вложении его как это Вам даже не нужно let
или переменная:
$ echo $(date +%s) " " $(( $(date +%s)+100 ))
1377110185 1377110285
Необходимо добавить $
перед круглой скобкой и также экспортировать $future
:
$ echo The epoch time is: `date +%s` in 100 seconds the time will be: \
`let future=$(date +%s)+100; export future` $future
The epoch time is: 1377110177 in 100 seconds the time will be: 1377110252
Переменные не совместно используются экземплярами удара. Каждый раз Вы выполняете a $()
(или обратные галочки), команда, любые переменные, определенные в нем, не будут доступны для родительской оболочки:
$ foo=$(echo 12);
$ echo $foo
12
$ foo=(echo 12; foo=0)
$ echo $foo
$ echo $foo
12
Как Вы видите, хотя Вы устанавливаете foo
к 0 в $()
подоболочка, то значение не экспортируется в родительскую оболочку.
Объявите переменные, экспортируйте их и затем используйте их, как Вам нравится:
date=$( date +%s )
future=$(( $date + 100 ))
echo "The epoch time is: $date in 100 seconds time will be: $future"
который дает:
The epoch time is: 1377110185 in 100 seconds time will be: 1377110285
И можно продолжить использовать те значения:
echo "which is the same as $(( $date + 100 ))"
который дает:
which is the same as 1377110285
Обратите внимание, что, если они находятся в сценарии, они не должны быть экспортированы, только на командной строке делают необходимо экспортировать их, чтобы использоваться в последующих командах.
Или можно оставить переменные всеми вместе:
echo "The epoch time is: $(date +%s) in 100 seconds the time will be: $(( $(date +%s)+100 ))"
Обратите внимание что ''дата + %s\
и $( date +%s )
в значительной степени подобны, но это - другая тема, лучше всего затронутая в этом Ответе
$( )
назад к` `
и это сделает то же самое. То, что Вы на самом деле сделали, изменитьсяlet
кому:$(( ))
. – cjm 21.08.2013, 21:42