我正在创建一个简单的 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 脚本菜鸟,我在网上搜索了一些答案,但没有得到任何具体的答案。
我不明白 bash 命令exec
。我已经看到它内部使用脚本来重定向所有输出到一个文件中(如被看见在此)。但我不明白它是如何工作的或它的一般作用。我已经阅读了手册页,但我不明白它们。
当使用 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)
有任何想法吗?
如何在 shell 的后台运行程序,并能够在保持程序运行的同时关闭 shell?假设我的 UI 有问题,或者出于某种原因,我需要从终端窗口启动一个程序,例如nm-applet
:
nm-applet
Run Code Online (Sandbox Code Playgroud)
当它启动时,它占据终端窗口的前景。
有没有什么简单的方法可以在后台运行程序而无需让终端保持打开状态或让它占据整个终端?
在那一点上,我确实找到了一种从终端运行程序并允许其他输入的方法,方法是&
在命令中附加一个与号 ( ) ,如下所示:
nm-applet &
Run Code Online (Sandbox Code Playgroud)
但这没有多大用处,因为一旦终端关闭,在终端中启动的任何进程都会被终止。
我想执行一个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
用户的正确权限?
我正在尝试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) 我正在编写一个简单的 bash 脚本,但我需要它来检查它是否以 root 身份运行。我知道可能有一种非常简单的方法可以做到这一点,但我不知道该怎么做。
只是要清楚:
编写脚本foo.sh的简单方法是什么,以便命令./foo.sh
输出0
,命令sudo ./foo.sh
输出1
?
使用Bashsource /some/script
和. /some/script
在 Bash 中执行脚本(例如 /some/script)有什么区别?
我常开很多很多终端的[现在我有7对这个工作区中打开]我经常搜索history
与grep
查找我刚写的一个最近的命令,但我不希望追捕终端,然后向上滚动并寻找更多,等等。有时我的终端在没有“退出”的情况下关闭,我写的所有东西都丢失了[有时我需要我在一个被杀死的终端中写的东西]。
那么有没有办法让每个终端立即写入 .bash_history ?或者至少每分钟一次,或者类似的东西?
我已阅读有关使用终端复制文件的信息,但这些示例对我有很大帮助。所以这就是我想要做的:
例子:
我有一个文件,/home/levan/kdenlive untitelds.mpg
我想将此文件复制到/media/sda3/SkyDrive
SkyDrive 目录中,但不想删除任何内容。
我有一个文件,/media/sda3/SkyDrive untitelds.mpg
我想将此文件复制到/home/levan/kdenlive
kdenlive 目录中,但不想删除任何内容
我想将一个文件夹从主目录复制到sda3
并且不想删除sda3
目录和对面的任何内容
我想剪切一个文件夹/文件并复制到其他地方而不删除我剪切到的那个目录中的文件。