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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.