标签: bash

如何在 shell 脚本中创建选择菜单?

我正在创建一个简单的 bash 脚本,我想在其中创建一个选择菜单,如下所示:

$./script

echo "Choose your option:"

1) Option 1  
2) Option 2  
3) Option 3  
4) Quit  
Run Code Online (Sandbox Code Playgroud)

根据用户的选择,我希望执行不同的操作。我是一个 bash shell 脚本菜鸟,我在网上搜索了一些答案,但没有得到任何具体的答案。

command-line bash scripts

169
推荐指数
11
解决办法
59万
查看次数

“exec”命令有什么作用?

我不明白 bash 命令exec。我已经看到它内部使用脚本来重定向所有输出到一个文件中(如被看见在)。但我不明白它是如何工作的或它的一般作用。我已经阅读了手册页,但我不明白它们。

bash

169
推荐指数
4
解决办法
34万
查看次数

在 Bash 中使用 sudo 和重定向时如何解决“权限被拒绝”?

当使用 sudo 允许编辑文件时,我经常收到“权限被拒绝”。

例如,我的鼠标抖动和反应迟钝,所以我想禁用轮询:

sudo echo "options drm_kms_helper poll=N">/etc/modprobe.d/local.conf
Run Code Online (Sandbox Code Playgroud)

系统提示我输入密码,然后得到:

bash: /etc/modprobe.d/local.conf: Permission denied
Run Code Online (Sandbox Code Playgroud)

因此,我尝试使用以下方法进行临时更改以禁用轮询:

sudo echo N> /sys/module/drm_kms_helper/parameters/poll
Run Code Online (Sandbox Code Playgroud)

系统再次回应:

bash: /sys/module/drm_kms_helper/parameters/poll: Permission denied
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

command-line bash sudo

168
推荐指数
6
解决办法
20万
查看次数

从终端在后台运行程序

如何在 shell 的后台运行程序,并能够在保持程序运行的同时关闭 shell?假设我的 UI 有问题,或者出于某种原因,我需要从终端窗口启动一个程序,例如nm-applet

nm-applet
Run Code Online (Sandbox Code Playgroud)

当它启动时,它占据终端窗口的前景。

有没有什么简单的方法可以在后台运行程序而无需让终端保持打开状态或让它占据整个终端?

在那一点上,我确实找到了一种从终端运行程序并允许其他输入的方法,方法是&在命令中附加一个与号 ( ) ,如下所示:

nm-applet &
Run Code Online (Sandbox Code Playgroud)

但这没有多大用处,因为一旦终端关闭,在终端中启动的任何进程都会被终止。                                                                        

command-line bash console process

167
推荐指数
5
解决办法
37万
查看次数

无法执行 .sh 文件:/bin/bash^M: bad interpreter

我想执行一个shell脚本:

-rwxr-x--x 1 root root   17234 Jun  6 18:31 create_mgw_3shelf_6xIPNI1P.sh
Run Code Online (Sandbox Code Playgroud)

我尝试执行标准程序,但出现此错误:

./create_mgw_3shelf_6xIPNI1P.sh 
localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0 
DEBUG   cd/etc/opt/ldapfiles/ldif_in ;
./create_mgw_3shelf_6xIPNI1P.sh 
localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0
**ERROR  sh: ./create_mgw_3shelf_6xIPNI1P.sh: /bin/bash^M: bad interpreter: No such file or directory**
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我是作为组root下的用户这样做的root

这是否意味着该文件没有root用户的正确权限?

command-line bash scripts

167
推荐指数
6
解决办法
51万
查看次数

如何在带有空格的“for”循环中读取完整行

我正在尝试for为文件运行一个循环,我想显示整行。但它只显示最后一个字。我想要完整的线路。

for j in `cat ./file_wget_med`

do
echo $j

done
Run Code Online (Sandbox Code Playgroud)

运行后结果:

Found.
Run Code Online (Sandbox Code Playgroud)

这是我的数据:

$ cat file_wget_med
2013-09-11 14:27:03 ERROR 404: Not Found.
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts

166
推荐指数
5
解决办法
35万
查看次数

脚本如何检查它是否以 root 身份运行?

我正在编写一个简单的 bash 脚本,但我需要它来检查它是否以 root 身份运行。我知道可能有一种非常简单的方法可以做到这一点,但我不知道该怎么做。

只是要清楚:
编写脚本foo.sh的简单方法是什么,以便命令./foo.sh输出0,命令sudo ./foo.sh输出1

bash root scripts

160
推荐指数
6
解决办法
16万
查看次数

"source" 和 "." 和有什么不一样?

使用Bashsource /some/script. /some/script在 Bash 中执行脚本(例如 /some/script)有什么区别?

bash scripts

160
推荐指数
2
解决办法
6万
查看次数

是否可以立即写入 .bash_history ?

我常开很多很多终端的[现在我有7对这个工作区中打开]我经常搜索historygrep查找我刚写的一个最近的命令,但我不希望追捕终端,然后向上滚动并寻找更多,等等。有时我的终端在没有“退出”的情况下关闭,我写的所有东西都丢失了[有时我需要我在一个被杀死的终端中写的东西]。

那么有没有办法让每个终端立即写入 .bash_history ?或者至少每分钟一次,或者类似的东西?

bash history

160
推荐指数
4
解决办法
7万
查看次数

如何通过终端复制文件?

我已阅读有关使用终端复制文件的信息,但这些示例对我有很大帮助。所以这就是我想要做的:

例子:

  1. 我有一个文件,/home/levan/kdenlive untitelds.mpg我想将此文件复制到/media/sda3/SkyDriveSkyDrive 目录中,但不想删除任何内容。

  2. 我有一个文件,/media/sda3/SkyDrive untitelds.mpg我想将此文件复制到/home/levan/kdenlive kdenlive 目录中,但不想删除任何内容

  3. 我想将一个文件夹从主目录复制到sda3并且不想删除sda3目录和对面的任何内容

  4. 我想剪切一个文件夹/文件并复制到其他地方而不删除我剪切到的那个目录中的文件。

command-line bash

158
推荐指数
2
解决办法
159万
查看次数

标签 统计

bash ×10

command-line ×6

scripts ×5

console ×1

history ×1

process ×1

root ×1

sudo ×1