В соответствии с документом , #|
создает команду, которая будет выполнять команду и направлять вывод другим.Как говорится, следующий код в Scala:
(Process("echo hello") #| Process("wc -c")).!
эквивалентен следующему коду Bash:
echo hello | wc -c
, что не то, что вы хотите.
То, что выищем оператор ### , который создает команду, которая будет запускать одну команду, а затем другую.
Используя этот оператор, вы можете написать следующий код Scala:
(Process("ls") ### Process("echo hello")).!
Что эквивалентно следующему коду Bash:
ls
echo hello
Однако обратите внимание, что использование Process
вышеописанным способом не является полностью эквивалентным Bash, поскольку оно не может изменить текущий каталог с помощью cd
и не использоватьСинтаксис bash, такой как if
, for
, case
.
Если вам действительно нужен код, эквивалентный bash, единственный способ - запустить скрипт с помощью bash.