Linux
如何在bash中正在執行的命令中執行命令
如何在 bash 腳本中執行此命令
#!/bin/bash docker exec -ti test psql db db drop schema if exists stack cascade; delete from partman.part_config; \q pwd cd /folder/name
要將腳本中的行發送到程序的輸入,您應該使用“here doc”。在這個例子中,它以
EOD
#!/bin/bash docker exec test psql db db << 'EOD' drop schema if exists stack cascade; delete from partman.part_config; \q EOD pwd cd /folder/name
然後,您可以像以前一樣繼續腳本。
chmod a+rx theScript # Make the script executable ./theScript # Run it
但是,如果您將此作為真正的腳本執行,則最後一個
cd
幾乎沒有什麼有用的效果,因為它無法更改呼叫程序(您的 shell)的目錄。StackExchange 上有很多解決方案,但一般方法是
cd
必須在目前程序上下文中執行。您可以通過dot執行腳本來做到這一點:. theScript # Source the script