запустить сценарий bash не работает команда псевдонима в zsh

С ed (используя в подстановке литеральную табуляцию, составленную как Ctrl-V+TAB)

$ ed -s file << EOF
,s/0    //
,n
q
EOF

1   0   chr1    3000575 3000801 0   chr1    4340023 4340249 32  32  
2   0   chr1    3000641 3000801 -1  chr1    3311943 3311783 32  32  
3   0   chr1    3000674 3000801 -1  chr1    3001534 3001407 32  32  
4   0   chr1    3000674 3000801 -1  chr1    3001534 3001407 32  32  
5   0   chr1    3000674 3000801 -1  chr1    3001534 3001407 32  32

Команда (.,.)n печатает адресованные строки, предваряя каждую строку номером строки и табуляцией - идеально для вашего формата с разделителями табуляции.

3
16.08.2017, 17:18
1 ответ

Когда вы запускаете script.sh, он выполняется в подоболочке, и ваши псевдонимы не будут распространяться до вызывающей оболочки (или текущего сеанса, когда вы к нему обращаетесь ). Вам нужно получить сам script.sh:source script.sh. Это приведет к тому, что команды будут выполняться в вашей текущей оболочке, и псевдонимы станут видимыми.

Дополнительное примечание :из соображений переносимости вам следует рассмотреть возможность использования .вместо source, так как первый является стандартом POSIX, а второй является башизмом .

5
27.01.2020, 21:15

Теги

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