是否有之間的差異:將腳本編入bash?
$ bash ~/script.sh
和:
$ cat ~/script.sh | bash
他們似乎表現略有不同,我不能完全弄清楚到底是怎麼回事。我的script.sh
包含幾行bash,但是當我將它管入bash中時似乎中止了(但直接運行腳本時運行完成)。
以這兩種方式運行腳本有什麼不同?
此外,當我使用<
,行爲是一樣的第一個例子(運行至完成):
bash <(~/script.sh)
的腳本是沿
set -eux
ssh CLUSTER_0_SERVER_0 "do_something" || ssh CLUSTER_0_SERVER_1 "do_something"
ssh CLUSTER_1_SERVER_0 "do_something" || ssh CLUSTER_1_SERVER_1 "do_something"
請同時提供'script.sh'文件的內容。 –
這個腳本非常簡單,做了一個'set -eux'然後幾行'ssh CLUSTER_0_SERVER_0「do_something」|| ssh CLUSTER_0_SERVER_1「do_something」'然後爲另一組機器'ssh CLUSTER_1_SERVER_0「do_something」|| ssh CLUSTER_1_SERVER_1「do_something」等等(基本上,它被ssh集成到一堆集羣中,並試圖在每個集羣中的一臺機器上運行do_something直到成功,然後它應該移動到下一個集羣)。我直接運行它的行爲與將腳本管道化到bash上的行爲有所不同。 –
'bash <(foo.sh)'**完全不同於'bash