| Anton8830 |  | 
| 
                Темы:
                
                    23
                
             
                Сообщения:
                
                    175
                
             
                Участник с: 16 ноября 2013
             | Я хочу написать алиас для команды 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', результат такой же... В чем я ошибся? | 
| arcanis |  | 
|   
                Темы:
                
                    31
                
             
                Сообщения:
                
                    1496
                
             
                Участник с: 09 сентября 2012
             | запилите функцию mount() {
sudo mount $1 /mnt
}ну или хотя бы уберите одинарные кавычки)) замените их двойными | 
| Anton8830 |  | 
| 
                Темы:
                
                    23
                
             
                Сообщения:
                
                    175
                
             
                Участник с: 16 ноября 2013
             | Спасибо, помогло. Я ещё чутка извратился: m () { sudo mount /dev/sd$1 /mnt } Теперь можно вызвать m a2 и выполнится команда sudo mount /dev/sda2 /mnt | 
| akorop |  | 
| 
                Темы:
                
                    111
                
             
                Сообщения:
                
                    1755
                
             
                Участник с: 29 февраля 2012
             | Anton8830В том, что алиас - это не командный файл и не функция. Это тупая текстовая подстановка строки вместо одиночного слова, без подстановок внутри строки. Так что получается "sudo mount $1 /mnt /dev/sda6". | 
| arcanis |  | 
|   
                Темы:
                
                    31
                
             
                Сообщения:
                
                    1496
                
             
                Участник с: 09 сентября 2012
             | akoroporly? А вы крайние кавычки замените на ". Работает как в баше, так и в zsh. Для понимания разницы: echo "$PATH" echo '$PATH' Хотя да, обычно почему то про это забывается =) | 
| akorop |  | 
| 
                Темы:
                
                    111
                
             
                Сообщения:
                
                    1755
                
             
                Участник с: 29 февраля 2012
             | arcanisНепонятен смысл слова "работает".akoroporly? А вы крайние кавычки замените на ". Работает как в баше, так и в 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 | 
| nafanja |  | 
|   
                Темы:
                
                    94
                
             
                Сообщения:
                
                    9252
                
             
                Участник с: 02 июня 2012
             заблокирован | akorop [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 | 
| akorop |  | 
| 
                Темы:
                
                    111
                
             
                Сообщения:
                
                    1755
                
             
                Участник с: 29 февраля 2012
             | nafanjaТак в чём вопрос-то? Ну сгинул тихо $1, а всякие d и ds остались. Это не тот случай, что у ТС, тут не интересно. Интересно вот так: alias dddd="echo $1 zzz", ну и остальное аналогично. А ещё интереснее скрипт, который я приводил. В нём ясно видно, в какой момент происходит подстановка $1 и на что.akorop (Только если его в bash выполнять, то фигню со скобочками лучше убрать. А в zsh выполняется и так.) | 
| nafanja |  | 
|   
                Темы:
                
                    94
                
             
                Сообщения:
                
                    9252
                
             
                Участник с: 02 июня 2012
             заблокирован | akorop, Ы да точно, не работает (((, простейшие примеры хоть и выполнились как бы правильно, а на самом деле облом. что то я тупанул... akorop +1 
                        Псевдографический инсталлятор Arch Linux ver. 3.8.2 Благодарности принимаются на ЯД 410012815723874 | 
| arcanis |  | 
|   
                Темы:
                
                    31
                
             
                Сообщения:
                
                    1496
                
             
                Участник с: 09 сентября 2012
             | а да, пардон, вы правы. Я не правильно к тестам подошел =) когда то раньше писал для этого дела функции, потому что алиасы не смог заставить работать, а сейчас just-for-lulz попробовал по другом, но неправильные команды для теста выбрал |