(РЕШЕНО) bash_alias для mount

Я хочу написать алиас для команды mount вида alias mnt='sudo mount $1 /mnt'
Т.е. вводишь "mnt /dev/sda6" и выполняется команда "sudo mount /dev/sda6 /mnt"
НО!
При выполнении получаю ответ: /mnt не является блочным устройством.
Модернизирую алиас в alias mnt='echo "sudo mount $1 /mnt"'
В итоге вижу: sudo mount /mnt /dev/sda6

Пробовал уже выставлять переменные типа alias mnt='export d="$1"; export s="/mnt"; sudo mount $d $s', результат такой же...

В чем я ошибся?
запилите функцию
mount() {
sudo mount $1 /mnt
}

ну или хотя бы уберите одинарные кавычки)) замените их двойными
PGP 0x31361F01
arcanisrepo
Спасибо, помогло.
Я ещё чутка извратился:
m () {
sudo mount /dev/sd$1 /mnt
}


Теперь можно вызвать m a2 и выполнится команда sudo mount /dev/sda2 /mnt
Anton8830
Я хочу написать алиас для команды mount вида alias mnt='sudo mount $1 /mnt'
Т.е. вводишь "mnt /dev/sda6" и выполняется команда "sudo mount /dev/sda6 /mnt"
...
В чем я ошибся?
В том, что алиас - это не командный файл и не функция. Это тупая текстовая подстановка строки вместо одиночного слова, без подстановок внутри строки. Так что получается "sudo mount $1 /mnt /dev/sda6".
akorop
В том, что алиас - это не командный файл и не функция. Это тупая текстовая подстановка строки вместо одиночного слова, без подстановок внутри строки. Так что получается "sudo mount $1 /mnt /dev/sda6".
orly? А вы крайние кавычки замените на ". Работает как в баше, так и в zsh. Для понимания разницы:
echo "$PATH"
и
echo '$PATH'

Хотя да, обычно почему то про это забывается =)
PGP 0x31361F01
arcanisrepo
arcanis
akorop
В том, что алиас - это не командный файл и не функция. Это тупая текстовая подстановка строки вместо одиночного слова, без подстановок внутри строки. Так что получается "sudo mount $1 /mnt /dev/sda6".
orly? А вы крайние кавычки замените на ". Работает как в баше, так и в zsh.
Непонятен смысл слова "работает".
В рассматриваемом случае совершенно пофиг, какие кавычки. По-любому параметр команды mnt не подставится вместо $1. Особенно прикалывают такие вещи в скрипте. Для понимания ситуации:
/tmp % cat ./a_test
echo \[$1\]
alias p1='echo \[$1\]'
alias p1
p1 p1
alias p2="echo \[$1\]"
alias p2
p2 p2
/tmp % ./a_test par
[par]
p1='echo \[$1\]'
[par] p1
p2='echo \[par\]'
[par] p2
akorop
По-любому параметр команды mnt не подставится вместо $1.
[email protected] ~ % alias dddd=echo $1
[email protected] ~ % dddd d
d
[email protected] ~ % alias dddd='echo $1'
[email protected] ~ % dddd d
d
[email protected] ~ % alias dddd="echo $1"
[email protected] ~ % dddd ds
ds
???
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
akorop
По-любому параметр команды mnt не подставится вместо $1.
[email protected] ~ % alias dddd=echo $1
....
???
Так в чём вопрос-то? Ну сгинул тихо $1, а всякие d и ds остались. Это не тот случай, что у ТС, тут не интересно. Интересно вот так: alias dddd="echo $1 zzz", ну и остальное аналогично. А ещё интереснее скрипт, который я приводил. В нём ясно видно, в какой момент происходит подстановка $1 и на что.
(Только если его в bash выполнять, то фигню со скобочками лучше убрать. А в zsh выполняется и так.)
akorop, Ы да точно, не работает (((, простейшие примеры хоть и выполнились как бы правильно, а на самом деле облом.
что то я тупанул...
akorop +1
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
а да, пардон, вы правы. Я не правильно к тестам подошел =) когда то раньше писал для этого дела функции, потому что алиасы не смог заставить работать, а сейчас just-for-lulz попробовал по другом, но неправильные команды для теста выбрал
PGP 0x31361F01
arcanisrepo
 
Зарегистрироваться или войдите чтобы оставить сообщение.