我是 Linux 和 Bash 脚本的新手。在工作中,我看到 Bash 脚本的结构与此类似:
mkdir build && cd build && touch blank.txt
Run Code Online (Sandbox Code Playgroud)
或者:
mkdir build; cd build; touch blank.txt
Run Code Online (Sandbox Code Playgroud)
甚至是异国情调:
COMMAND="mkdir build && cd build && touch blank.txt"
eval ${COMMAND}
Run Code Online (Sandbox Code Playgroud)
最后一个示例给出了一个可能的用例,其中一行可能有用,但通常以下内容更易于阅读并且(至少对我而言)允许您直观地调试脚本:
mkdir build
cd build
touch blank.txt
Run Code Online (Sandbox Code Playgroud)
在一条线上塞满所有东西是否有技术优势?
所以我知道如果我输入 gnome-terminal 或 xterm,会弹出一个新窗口。然后我检查了这两个的手册页,没有找到相关的内容。
然后我注意到在 Mac 下你可以在打开程序的情况下进行。但在 Linux 下似乎不是那么简单。
有没有人有经验?
我有一个简单的目标,即创建脚本来打开终端,运行命令,然后保持终端打开。
这是我尝试过的:
#!/bin/bash
xterm -e -hold ls
Run Code Online (Sandbox Code Playgroud)
它生成以下错误:
xterm: Can't execvp -hold: No such file or directory
Run Code Online (Sandbox Code Playgroud)
然后我也试过了
#!/bin/bash
konsole -e --noclose ls
Run Code Online (Sandbox Code Playgroud)
当我双击它时,这个简单的没有做任何事情。(我确保脚本文件是可执行的)
我不想使用,gnome-terminal
因为它需要先创建配置文件gnome-terminal
。
在python中会更容易吗?
我想编写一个脚本来激活虚拟环境并在新终端中运行 Django 项目的服务器。我的startProject.sh是:
#!/bin/bash
source virtualenv/bin/activate
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
而且,我可以通过以下方式在当前终端上运行此脚本:
source startProject.sh
Run Code Online (Sandbox Code Playgroud)
我想在脚本打开的新终端中执行此操作。
#!/bin/bash
gnome-terminal --working-directory=/home/myname/project -x 'source startProject.sh'
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个。
#!/bin/bash
gnome-terminal --working-directory=/home/myname/project -x '#!/bin/bash\n source startProject.sh'
Run Code Online (Sandbox Code Playgroud)
两者都不起作用。为什么?我读了其他问题,但我仍然不明白。我是初学者,所以请假设没有经验。
我有几个终端配置文件。我可以在启动时打开所有配置文件,但它们在启动应用程序中使用此 cmd 在不同的窗口中打开:
gnome-terminal --window-with-profile=ablack && gnome-terminal --window-with-profile=agreeen && gnome-terminal --window-with-profile=aubergine && gnome-terminal --window-with-profile=beige && gnome-terminal --window-with-profile=cyan && gnome-terminal --window-with-profile=grey && gnome-terminal --window-with-profile=orange && gnome-terminal --window-with-profile=white && gnome-terminal --window-with-profile=yellow && gnome-terminal --window-with-profile=ablack
Run Code Online (Sandbox Code Playgroud)
我试图用这个 cmd 打开一个带有多个选项卡的窗口,但没有成功:
gnome-terminal --window-with-profile=ablack && gnome-terminal --tab-with-profile=agreeen && gnome-terminal --tab-with-profile=aubergine && gnome-terminal --tab-with-profile=beige && gnome-terminal --tab-with-profile=cyan && gnome-terminal --tab-with-profile=grey && gnome-terminal --tab-with-profile=orange && gnome-terminal --tab-with-profile=white && gnome-terminal --tab-with-profile=yellow && gnome-terminal --tab-with-profile=ablack
Run Code Online (Sandbox Code Playgroud)
如何使它工作?