LINUX.ORG.RU
ФорумTalks

Вопрос по bash


0

0
Не могу наманить формат присвоения с пайпом на команду.

Т.е. более короткую запись для такого извращения:

HASH=$(echo $(pwd)/$1|md5sum|cut -d' ' -f1)
★★★★★
Ответ на: комментарий от klalafuda
1 Ты забыл про $1 :)

2 Есть, вроде, короткая запись конструкций =$(echo $some|command). По аналогии со всякими ${some:-default} и т.п.

(а бэкапострофов я сознательно избегаю из-за трудностей с вложенностью, мне не утомительно лишний $ ввести ;))
KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73
> 1 Ты забыл про $1 :) 

я его сознательно проигнорировал. сам допишешь, не страшно :)

> 2 Есть, вроде, короткая запись конструкций =$(echo $some|command). По аналогии со всякими ${some:-default} и т.п. 

ну так она работает. по крайней мере с bash/ksh.

#!/bin/bash

HASH1=`echo $(pwd) | md5sum | cut -d ' ' -f1`
echo $HASH1

HASH2=$(echo $(pwd) | md5sum | cut -d ' ' -f1)
echo $HASH2

$ ./000.sh
690f20fb083cf8f0207d5f9115d34869
690f20fb083cf8f0207d5f9115d34869

// wbr
klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda
Я тебе про Фому, а ты про Ерёму :)

`cmd` и $(cmd) - это синонимы. И речь не о них.

На самом деле я сам виноват, протормозил, упростив пример :D

Имелась в виду конструкция вида:

KEY=`pwd` # (специально для тебя - обратные апострофы ;)
HASH=`echo $KEY|md5sum`

Так вот, для второй строки я видел более короткую запись. Ну, типа
HASH=${KEY|md5sum}
KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73
> HASH=`echo $KEY|md5sum`

Не совсем в тему, но echo лучше заменить на echo -n, чтобы "\n" не попал в данные для хеширования.
Deleted
()
Ответ на: комментарий от Deleted
Ага, спасибо. В данном случае пофиг, но где-то можно зевнуть когда будет важно.
KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted
> Не совсем в тему, но echo лучше заменить на echo -n, чтобы "\n" не попал в данные для хеширования.

Ага, а потом в системе или в шелле, который не поддерживает нестандартные опции echo в данные для кэширования попадет сама -n

Вместо echo нужно printf(1) использовать..

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.