Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。

3
我可以将参数传递给别名命令吗?
我想知道是否可以使用别名命令传递参数。 例如: alias d="dmesg|grep -iw usb|tail -5" 现在d将打印最后5行。如果要使用d打印不同数量的行,则必须再次更改别名命令声明d。 有什么方法可以修改别名的声明,这样我就不必重新输入声明来更改行数。就像在声明别名时合并传递行数作为参数一样d?还是有其他解决方法?

1
获取多个目录的总磁盘空间
我知道du -sh,它为我提供了用于给定目录的总磁盘空间。 我的问题是我感兴趣的目录分散在许多子目录中。我有正确的“查找”命令,可以给我这些目录。目标是传递找到的目录并获取这些目录使用的总磁盘空间 如果我将这些目录作为参数传递给du,则该目录将使用total,但没有总计。我想得到总数。 示例du -sh dir1 dir2给出如下输出 17k dir1 55K dir2 我需要做什么才能获得总计?

4
如果条件在bash shell中多行
我有一个bash shell函数,该函数接受一个参数,并在需要时对其执行一些操作。 do_somthing() { if [need to do something on $1] then do it return 0 else return 1 fi } 我想用几个参数调用此方法,并检查是否至少有一个成功。 我尝试了类似的东西: if [ do_something "arg1" || do_something "arg2" || do_something "arg3" ] then echo "OK" else echo "NOT OK" fi 正确的语法是什么? 另外,还要 编辑 -我想确保即使第一个条件为true,所有其他条件仍将被评估。 谢谢,
19 bash  scripts 


4
如何将“ / proc / * / environ”文件分成几行?
我正在尝试以/proc/*PID*/environ更具可读性的格式获取任何文件的内容。我可以按照下面显示的方式进行操作,但是我确信这不是正确的方法。 $ cat "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spasTEXTDOMAIN=im-configXDG_SEAT=seat0XDG_SESSION_TYPE=waylandSHLVL=1QT4_IM_MODULE=ximHOME=/home/spasDESKTOP_SESSION=ubuntuGNOME_SHELL_SESSION_MODE=ubuntuDBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busIM_CONFIG_PHASE=2LOGNAME=spasGTK_IM_MODULE=ibusJOURNAL_STREAM=9:147845_=/usr/bin/gnome-sessionUSERNAME=spasXDG_SESSION_ID=70PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binXDG_RUNTIME_DIR=/run/user/1000LANG=en_US.UTF-8XDG_CURRENT_DESKTOP=ubuntu:GNOMEXDG_SESSION_DESKTOP=ubuntuXMODIFIERS=@im=ibusSHELL=/bin/bashGDMSESSION=ubuntuTEXTDOMAINDIR=/usr/share/locale/XDG_VTNR=2QT_IM_MODULE=ximPWD=/home/spasCLUTTER_IM_MODULE=ximXDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktopXDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spas^@TEXTDOMAIN=im-config^@XDG_SEAT=seat0^@XDG_SESSION_TYPE=wayland^@SHLVL=1^@QT4_IM_MODULE=xim^@HOME=/home/spas^@DESKTOP_SESSION=ubuntu^@GNOME_SHELL_SESSION_MODE=ubuntu^@DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus^@IM_CONFIG_PHASE=2^@LOGNAME=spas^@GTK_IM_MODULE=ibus^@JOURNAL_STREAM=9:147845^@_=/usr/bin/gnome-session^@USERNAME=spas^@XDG_SESSION_ID=70^@PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin^@XDG_RUNTIME_DIR=/run/user/1000^@LANG=en_US.UTF-8^@XDG_CURRENT_DESKTOP=ubuntu:GNOME^@XDG_SESSION_DESKTOP=ubuntu^@XMODIFIERS=@im=ibus^@SHELL=/bin/bash^@GDMSESSION=ubuntu^@TEXTDOMAINDIR=/usr/share/locale/^@XDG_VTNR=2^@QT_IM_MODULE=xim^@PWD=/home/spas^@CLUTTER_IM_MODULE=xim^@XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop^@XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg^@ $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" | sed 's/\^@/\n/g' USER=spas TEXTDOMAIN=im-config XDG_SEAT=seat0 XDG_SESSION_TYPE=wayland ... 也许我必须为指定一个特定的值$IFS,但这是什么?实现上述结果的正确方法是什么?


2
Bash命令提示符中嵌入的CPU温度
我想知道是否有可能获得CPU温度并将其嵌入命令提示符。 这是我的输出sensors: $}-sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +55.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +55.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) 您能告诉我如何使用该grep功能将温度嵌入命令提示符吗?
18 bash 

1
Shell加载速度非常慢-Ubuntu 14.04
打开我的终端(ctrl + alt + t),需要很长时间才能加载我的提示。我在这里阅读过有关同一问题的文章,但是他们的解决方案都没有帮助我。在打开终端时,加载大约需要4-5秒钟,并且在出现提示之前,我看到一个弹出的白色启动屏幕程序的快速闪烁。我认为安装任何特定的软件包/软件后都不会发生这种情况。有什么建议么? 提前致谢。

2
有没有简单的方法可以记录shell脚本执行的所有活动?
是否有一种简单的方法可以将发生在shell脚本中的所有活动记录到文件中? 我有一个剧本。它输出诸如回显“指令”之类的内容,以及其他程序输出。我知道命令: command | tee -a "$log_file" 和 command >> logifle.log 我要问的是是否有用于记录的shell参数,或者我可以使用的set命令等等。如果不需要,我不一定要向文件添加数十个重定向或tee。我仍然想获取标准输出-我也只希望将其记录下来。

7
运行bash脚本后退出终端
我正在尝试编写一个bash脚本来使用该gnome-open命令打开某些文件(主要是pdf文件)。我也希望终端在打开pdf文件后退出。 我尝试将exit脚本添加到脚本末尾,但这不会关闭终端。我确实尝试过在网上搜索问题的答案,但找不到合适的答案,如果你们能提供帮助,我将非常感谢。 我需要一个仅杀死运行该命令的终端的答案,不是所有终端都可以吗?我接受的先前答案会杀死所有打开的终端窗口。直到今天我才意识到情况确实如此。

4
崩溃时重新运行应用程序脚本?
我有一些需要始终在笔记本电脑上运行的应用程序。 我使用bash脚本启动这些应用程序。在我的脚本中,我有一个类似于以下内容的循环: while true; do xterm done 这将运行一个应用程序(xterm在这种情况下),如果应用程序崩溃,则循环将再次启动它。 这样做的缺点是该循环中没有“干净”的出口。因此,即使用户打算关闭xterm,循环也会再次启动它。 有没有一种方法可以从bash脚本启动应用程序,观察它是否正在运行,如果脚本崩溃则重新运行它,或者如果用户正确关闭了它则什么也不做?
18 bash  scripts 

1
Bash选项卡补全:'-bash:寻找匹配`)时出现意外的EOF -bash:语法错误:文件意外结束
我正在尝试irb使用此命令从文件中进入特定环境变量的会话: $ env $(cat env.sh) irb 但是,当我Tab在键入env.以完成操作后尝试按一下时,会出现以下错误: $ env $(cat env.-bash: unexpected EOF while looking for matching `)' -bash: syntax error: unexpected end of file 另一个有趣的事情是,如果我以root用户身份登录,则不会发生此错误。 这是的输出find ~ -uid 0: $ find ~ -uid 0 /home/(redacted)/.rpmdb /home/(redacted)/.rpmdb/Group /home/(redacted)/.rpmdb/Conflictname /home/(redacted)/.rpmdb/Installtid /home/(redacted)/.rpmdb/Sha1header /home/(redacted)/.rpmdb/Providename /home/(redacted)/.rpmdb/__db.002 /home/(redacted)/.rpmdb/Requirename /home/(redacted)/.rpmdb/Sigmd5 /home/(redacted)/.rpmdb/__db.001 /home/(redacted)/.rpmdb/Obsoletename /home/(redacted)/.rpmdb/.dbenv.lock /home/(redacted)/.rpmdb/Name /home/(redacted)/.rpmdb/Basenames /home/(redacted)/.rpmdb/Triggername …

6
如何获取指向变量的对话框输入?
我一直在自学bash脚本,遇到了一个问题。我编写了一个脚本,使用“ read”命令从用户那里获取输入,并将该输入作为变量供以后在脚本中使用。该脚本有效,但是.... 我希望能够使用“对话框”进行设置。我发现 'dialog --inputbox'会将输出定向到'stderr',为了获得该输入作为变量,您必须将其定向到文件然后进行检索。我发现解释该代码是: #!/bin/bash dialog --inputbox \ "What is your username?" 0 0 2> /tmp/inputbox.tmp.$$ retval=$? input=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ case $retval in 0) echo "Your username is '$input'";; 1) echo "Cancel pressed.";; esac 我看到它正在使用2>将sdterr发送到/tmp/inputbox.tmp.$$,但是输出文件看起来像是'inputbox.tmp.21661'。当我尝试整理文件时,它给我一个错误。因此,我仍然无法从--inputbox获得用户输入作为变量。 示例脚本: echo " What app would you like to remove? " read …
18 bash  dialog 

2
bash:意外令牌'('附近的语法错误
我正在尝试通过wget下载flareget下载管理器,但出现错误 wget http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz bash: syntax error near unexpected token `(' 为什么会出现该错误,该如何解决?
18 bash  scripts  wget 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.