相关疑难解决方法(0)

sh和bash之间的区别

在编写shell程序时,我们经常使用/bin/sh/bin/bash.我经常使用bash,但我不知道它们之间有什么区别.

bash和之间的主要区别是sh什么?

我们究竟需要意识到在编程时bashsh

unix bash shell sh

1194
推荐指数
11
解决办法
46万
查看次数

为什么"cd"不能在shell脚本中工作?

我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java
Run Code Online (Sandbox Code Playgroud)

我将此文件保存为proj,添加了执行权限chmod,并将其复制到/usr/bin.当我通过以下方式调用它时 proj,它什么都不做.我究竟做错了什么?

linux shell

735
推荐指数
18
解决办法
59万
查看次数

任何方式退出bash脚本,但不退出终端

当我exit在shell脚本中使用命令时,脚本将终止终端(提示).有没有办法终止脚本然后留在终端?

我的脚本run.sh应该通过直接获取源或从其他脚本获取来执行.

编辑:更具体,有两个脚本run2.sh作为

...
. run.sh
echo "place A"
...
Run Code Online (Sandbox Code Playgroud)

run.sh作为

...
exit
...
Run Code Online (Sandbox Code Playgroud)

当我运行它时. run2.sh,如果它进入exit代码行run.sh,我希望它停在终端并留在那里.但是使用exit,整个终端都关闭了.

PS:我试过用return,但echo代码行仍然会被执行....

linux bash

163
推荐指数
5
解决办法
20万
查看次数

LINES和COLUMNS环境变量在脚本中丢失

考虑以下:

me@mine:~$ cat a.sh 
#!/bin/bash
echo "Lines: " $LINES
echo "Columns: " $COLUMNS
me@mine:~$ ./a.sh 
Lines: 
Columns: 
me@mine:~$ echo "Lines: " $LINES
Lines:  52
me@mine:~$ echo "Columns: " $COLUMNS
Columns:  157
me@mine:~$ 
Run Code Online (Sandbox Code Playgroud)

变量$LINES$COLUMNS是shell变量,不是环境变量,因而不会被导出到子进程(但会被自动更新,当我调整xterm窗口,通过SSH从远程位置登录,即使).有没有办法让我的脚本知道当前的终端大小?

编辑:我需要这个作为解决方法来解决这个问题:vi(以及vim,less和类似的命令)每次使用它时都会搞砸屏幕.更改终端不是一个选项,因此我正在寻找解决方法(向下滚动$LINES线肯定不是完美的解决方案,但至少比丢失前一个屏幕更好)

bash shell terminal environment-variables

62
推荐指数
6
解决办法
4万
查看次数

在终端中运行文本文件

有没有人知道是否有办法在shell中自动运行一个命令列表(来自文本文件)?

我需要运行很多脚本(大约1000个).脚本在python中,每个脚本有2个参数(dir_#和示例#)

我制作的文本文件看起来像这样......

     python /home/name/scripts/get_info.py dir_1 sample1
     python /home/name/scripts/get_info.py dir_2 sample2
     python /home/name/scripts/get_info.py dir_3 sample3
     python /home/name/scripts/get_info.py dir_4 sample4
     ...
Run Code Online (Sandbox Code Playgroud)

所以,我希望将这个文本文件作为参数传递给终端中的命令,可以自动完成工作......

提前致谢,

佩希

linux terminal command-line list

7
推荐指数
3
解决办法
5万
查看次数

如何在 WSL2 中运行的 vscode 中设置 bash

我想在使用 WSL2 的 vscode 中使用类似oh-my-bash 的东西。但是根据文档

在 WSL 中启动 VS Code Remote 时,不会运行任何 shell 启动脚本。这样做是为了避免针对 shell 调整的启动脚本出现问题。如果您想运行其他命令或修改环境,可以在设置脚本中完成~/.vscode-server/server-env-setup(内部人士~/.vscode-server-insiders/server-env-setup:)。如果存在,则在服务器启动之前处理该脚本。

我添加了一个~/.vscode-server/server-env-setup,根据日志发现并执行了它,但我的 Linux 技能非常基础,我不知道如何安装我的配置文件。我努力了

bash ~/.profile
Run Code Online (Sandbox Code Playgroud)

……但这似乎没有任何作用。我也尝试过

#!/bin/bash
source ~/.profile
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误/mnt/c/Users/cber/.vscode/extensions/ms-vscode-remote.remote-wsl-0.40.3/scripts/wslServer.sh: 3: /home/cber/.vscode-server/server-env-setup: source: not found

更新

下面回答了如何获取配置文件的问题,但我在 WSL2 上的 vs-code 中使用powerline-go 的问题仍然存在,但我将其移至一个新问题以结束此问题。

bash visual-studio-code windows-subsystem-for-linux

2
推荐指数
1
解决办法
2206
查看次数