Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

3
从bash迁移到zsh的人应该面对的主要问题是什么?
有几次我在bash中遇到了其他使用zsh所没有的问题,他们为自己的聪明程度感到高兴。 另外,我在喜欢的人中看到了zsh用户,并且我半心半意地尝试了几次迁移到zsh,但是每次返回都是因为我没有时间(而且很懒惰)学习如何在zsh中进行日常工作。 zsh。 周围是否有良好的实用迁移工具?还是有一些重要的建议您建议我学习使过渡更容易,至少让我可以尝试一下,看看它对“对我来说”有什么不同? 顺便说一下,我将大部分时间都花在Mac,Ubuntu和RedHat变体上。
10 bash  zsh 

2
屏幕状态栏显示zsh / bash shell的当前目录
我使用zsh作为外壳的GNU屏幕很多。(我认为)能够将当前目录名称(而不是完整路径)显示为选项卡标题将是一个不错的功能。我可以做到这一点,CTRL+A SHIFT+A但这是手动的。我想在更改目录时更改它。 有人知道这样做的方法吗? 编辑:答案还具有针对bash的解决方案。
10 bash  zsh  gnu-screen 

2
在shell中设置readline变量
我在man页面中读到,您使用以下命令将readline参数设置为off或设置为一个值 set var value 这与set内置inputrc函数相同吗?一旦已经读取并且外壳程序正在运行,如何设置变量?
10 bash  readline 

2
使用`select`命令在Bash中打印菜单
我正在尝试使用select命令实现一个简单的菜单。脚本(出于测试目的)如下: #!/bin/bash echo "*******************" PS3='Select an option and press Enter: ' options=("apache" "named" "sendmail") select opt in "${options[@]}" do case $opt in "apache") date ;; "named") echo "test" ;; "sendmail") echo "test 2" ;; *) echo "invalid option";; esac done echo "*********************" 脚本无法识别我提供的任何有效输入,并且始终打印“无效选项”消息。这个脚本在做什么错?

2
如何阻止root运行脚本
在Glassfish的应用服务器提供了脚本来管理应用程序服务器,并启动和停止他们,我想从运行此脚本限制root用户。原因是某些主要开发人员忘记以非特权用户身份管理服务器,并且如果他们以root用户身份重新启动应用程序服务器,则应用程序服务器必须由root用户[*]运行。 避免授予root用户访问权限是一种选择,开发人员会忘记,因为他们习惯在本地计算机上执行此操作。我希望该asadmin脚本可以更改为以非特权用户身份运行,或者可以选择在每次由root用户运行脚本时显示一条错误消息。 使用Bash外壳。 [*]:我试图修复文件的权限,但是即使我跟踪了许多由root拥有并对其进行chmod的文件,该应用程序也会遇到奇怪的错误,因此我必须再次以root身份运行。

3
bash:cd到最近修改的子目录
想知道是否有一种简单和/或便携式的方式来表示“更改为最近修改的子目录”。我可以使用ls和awk,但是可能有更好的方法。 cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' ) 我必须在具有数百个子目录的“输出文件”目录中运行命令,并且有99%的时间我想转到最近更改的目录。我不知道目录的名称是什么。
10 bash  date  cd-command 

2
有没有正确的方法来列出当前目录的子目录?
我可以通过以下方式找到目录的子目录 ls -d -- */ 要么 ls -l | grep "^d" 但是这两者似乎都是间接的,而且我想可以找到一种仅查找目录的标准方法。有正确的方法吗?如果不是,这两种方法中的任何一种都会导致边缘情况下的不良行为吗?(符号链接,隐藏目录等)

1
gnu coreutils是否已损坏?
考虑以下输入进行排序: cat > foo <<EOM D,,5014978 DD,,25 D,I,1972765530 D,Y,4223624 -,Y,71285059 YA,I,2 EOM 现在尝试运行 sort foo 在我的任何Linux机器上尝试对输出进行排序时(gnu coreutils 6.9-7.4版)。在cygwin(gnu coretuils 8.5)下运行时,输出进行排序。注释?
10 bash  coreutils  sort 

2
在Bash中,文件描述符255的作用是什么,我可以使用它吗?
我了解文件描述符(或文件处理程序)是Linux系统中的文件IO技术。 我也知道每个进程都有3个标准流(即stdin,stdout和stderr),这些流由描述符从0到3的文件表示。 但是,我注意到我检查过的所有进程lsof -p <pid>都有一个255具有读取许可权的额外文件描述符。 从这个答案中,我了解到此功能特定于Bash shell,但是答案和所引用的源都没有真正解释此文件描述符的用途。 我的问题: 255文件描述符的作用是什么? 我可以在我的Bash脚本中使用它吗,或者它只是一个内部工作机制,不应该手动使用/操纵?

4
如何打印变量名称及其值?
有什么办法可以打印变量名称及其值? j=jjj k=kkk l=lll for i in j k l do .... done 预期输出(每个变量在单独的行上): j = jjj k = kkk l = lll 有人可以建议一种获得上述结果的方法吗?
10 bash  shell  variable 

4
PIPE使用的Bash退出状态
我试图了解使用管道时如何传达退出状态。假设我要which用来查找不存在的程序: which lss echo $? 1 由于which找不到位置,lss我的退出状态为1。这很好。但是,当我尝试以下操作: which lss | echo $? 0 这表明最后执行的命令已正常退出。我能理解的唯一方法是,也许PIPE也会产生退出状态。这是正确的理解方式吗?
10 bash  shell-script  pipe  exit 

3
Bash扩展十六进制
我想知道是否存在一种使用bash扩展来查看十六进制数字组合的所有可能性的方法。我可以扩展二进制文件 在基地2: echo {0..1}{0..1}{0..1} 这回馈: 000 001 010 011 100 101 110 111 以10为基数: echo {0..9}{0..9} 这回馈: 00 01 02...99 但以十六进制表示: echo {0..F} 只需重复一下: {0..F}

1
Zsh:使向上箭头跳过相同的命令
在大多数Unix Shell中,向上箭头↑键替换历史记录中上一个命令正在编辑的命令。使用命令可以查看历史记录history。 ↑ 可以多次按下以爬上历史记录。 我的问题是: 我如何配置我的外壳程序,以便↑跳过所有与当前命令相同的命令? 确实,我经常make连续输入很多。当我想再次输入(或稍作修改)一个较旧的命令时,我不得不打↑很多次才能跳过所有make命令。 我知道,这↑绝不是提高外壳生产率的唯一秘诀。 奖金: 提供适用于Bash shell的配置。 保留历史记录(知道您连续多次键入命令会很有用)

1
如何为使用`nohup`执行的程序设置环境变量?
(我正在编辑现有的Bash脚本,因此我可能在这里犯了一个愚蠢的错误...) 我有一个shell脚本,它以环境变量作为参数保存命令,如下所示: COMMAND="mvn clean install -P $MAVEN_PROFILE" 然后,它nohup大致如下执行命令: nohup $COMMAND > logfile 这可行。 现在,我想设置一个可以在Maven中访问的环境变量。我已经尝试了以下几种方法: COMMAND="FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE" ...但随后它终止于: nohup: failed to run command `FORMAVEN=valueForMaven': No such file or directory 我觉得这里有几个不相关的概念在起作用,我都不了解甚至不知道。我需要什么才能做到以上几点?

3
for循环故障
我正在尝试设置一个脚本,该脚本将遍历一组目录,并在找到.jpg文件时执行一件事,而在找到.nef文件时执行另一件事。问题是,如果目录中没有例如.jpg文件(或.nef),则glob条目不再是扩展的glob,而只是一个字符串。例如: my_dir="pictures/" ext="JPG" for f in "$my_dir"*."$ext"; do echo $f done 如果my_dir文件夹中包含.JPG文件,则将在命令行上正确回显它们。 pictures/one.JPG pictures/two.JPG 但是,如果my_dir没有.JPG文件,则循环将进入一次迭代并回显: pictures/*.JPG 我如何构造它,以便如果该glob没有匹配项,它就不会进入for循环?
10 bash  wildcards 

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.