Команда работает в оболочке bash, но не работает с псевдонимом

Порт DB25 может быть как последовательным, так и параллельным, в зависимости от пола, но я так давно не использовал порт, что не могу вспомнить, какой это который.

Они сконструированы по-разному и не подлежат замене. Параллельные порты используют для сигнализации 0 и +5 вольт, последовательные порты используют -12 и +12 вольт.

Если ваш кабель подходит, можно с уверенностью сказать, что это последовательный порт, и вам следует попробовать использовать / dev / ttyS1 для связи.

1
20.04.2017, 19:17
2 ответа

Цитирование отключено. Вместо этого попробуйте использовать "" , чтобы содержать '' (хотя "" интерполирует $ переменные , которые вы можете или не захотите)

alias="submit -n 72 -x '--mail-type=END -N2'"

​​Или используйте трюк '\' ', чтобы «завершить текущую одинарную кавычку, вставить буквальную кавычку, перезапустить текущую одинарную кавычку». То есть любой внутренний ' заменяется на ' \ ''

alias='submit -n 72 -x '\''--mail-type=END -N2'\'''

Вот как я проверил, произвело ли цитирование одну непрерывную строку, а не два слова, как у вас:

# not ok, two distinct words
$ perl -E 'say for @ARGV' 'submit -n 72 -x '--mail-type=END -N2''
submit -n 72 -x --mail-type=END
-N2

# ok, a single string
$ perl -E 'say for @ARGV' 'submit -n 72 -x '-N2''                
submit -n 72 -x -N2
$ 

# ok, single quotes within doubles
$ perl -E 'say for @ARGV' "submit -n 72 -x '--mail-type=END -N2'"
submit -n 72 -x '--mail-type=END -N2'

# ok, '\'' trick
$ perl -E 'say for @ARGV' 'submit -n 72 -x '\''--mail-type=END -N2'\'''
submit -n 72 -x '--mail-type=END -N2'
$ 

Что касается foo = 'submit -n 72 -x' -N2 '' , то есть не вложенный; кавычки в unix не вложены, поэтому оболочки имеют $ (cmd ... $ (cmd ...)) вместо попытки выяснить, как вложить это, используя только обратные кавычки. foo = 'submit -n 72 -x' -N2 '' - более подробный и сложный способ сказать foo = 'submit -n 72 -x' -N2 или даже больше. просто foo = 'submit -n 72 -x -N2' .

3
27.01.2020, 23:19

Вы не можете вложить кавычки. Простой обходной путь - использовать разные кавычки:

alias foo='submit -n 72 -x "--mail-type=END -N2"'

Гораздо лучший обходной путь - не использовать псевдоним. Вместо этого используйте функцию.

foo () {
    submit -n 72 -x '--mail-type=END -N2' "$@"
}
1
27.01.2020, 23:19

Теги

Похожие вопросы