Questions tagged «bash»

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

5
只读TMOUT变量–解决方法,可在无活动时禁用自动退出Shell
我们这里有一个只读的Bash变量。我不允许取消设置该变量。 $ echo $TMOUT 1800 作为一种解决方法,我写了这些行(我的会话不会退出) #!/usr/bin/perl $|++; while (1) { print "\e[0n"; sleep 120; } 在CentOS7 / RHEL7储存库中是否有一个类似(类似于上面的Perl代码)的官方软件包(rpm)?我不喜欢打开vim编辑器,我希望有一个命令。
10 bash  rpm  repository  timeout 

1
bashrc惰性替换
如何在运行时而不是在执行〜/ .bashrc时(打开终端时)获得~/.bashrc别名来评估$()替换? 我经常运行此命令,以便为其添加别名: svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff 但是,当我将其添加~/.bashrc为别名时,我看到评估被硬编码为它们在打开终端时所具有的值: $ alias alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff' 如果我在其中打开终端,~则会收到错误消息: svn: E155007: '/home/dotancohen' is not a working copy svn: E155007: '/home/dotancohen' is …
10 bash  shell  quoting  alias  bashrc 


1
括号扩展范围为什么使用两个点而不是三个点(省略号)?
我终于明白了/发现为什么我从来没有使用bash的(还有zsh的)括号扩展范围正确:语法是{1..10}什么,而不是我认为是一个省略号,即{1...10}。 我可以知道为什么选择两个点而不是三个点吗?如(Wikipedia)链接所示,省略号在计算机编程中的用法是常见且易于理解的,这就是为什么这引起了我的好奇心。

2
为什么bash会忽略SIGTERM?
有时,当我想快速注销时,我会这样做kill -15 -1。我注意到bash忽略了SIGTERM。 我想知道这种bash行为的原理是什么? 在没有充分理由的情况下忽略SIGTERM并不是很UNIX,不是吗? 更新: 对所有人都相同(无)的影响: $ kill -TERM $$ $ type kill kill is a shell builtin $ command kill -TERM $$ $ /bin/kill -TERM $$ UPDATE2: 来自man bash: 当bash是交互式的时,在没有任何陷阱的情况下,它将忽略SIGTERM 因此,它是有目的的。但为什么?
10 bash  signals 

4
在bash脚本中使用chown $ USER:$ USER
在一个小的bash脚本中,我正在运行,尝试创建一个新目录。我已经添加: sudo chown $USER:$USER /var/www/$sitename sudo chmod 775 /var/www/$sitename 我mkdir(sudo mkdir /var/www/$sitename)所在的行之后。 由于某些原因,chown没有执行。我可以手动执行它,但是当写入文件时它不起作用。我注意到,“ chown”没有以与“ mkdir”和“ chmod”相同的颜色突出显示,但是我无法弄清楚我的问题。 为什么chown在这里不工作? 这有问题$USER:$USER吗? 编辑 这是完整的脚本。无论非root用户执行脚本时,我如何将文件整理给谁? #!/bin/sh #!/bin/bash # New Site cd /etc/apache2/sites-available/ echo "New site name (test.my):" read sitename echo "<VirtualHost *:80> ServerAdmin admin@$sitename ServerName $sitename ServerAlias $sitename DocumentRoot /var/www/$sitename <Directory /> Options FollowSymLinks AllowOverride …

2
如果bash停止回声,该怎么办?
我在工作中使用的一种应用程序有时会与我的bash拧在一起,所以我再也看不到自己的输入了。即 $ echo foo foo $ 变成 $ foo $ 我错误地尝试运行stty -echo,这使情况变得更糟,现在它停止接受所有命令,这使我的输入处于某种状态,该状态只会>在每次换行时出现,而没有别的。 我该怎么办?

2
在管道中使用脚本时如何读取用户输入
一般问题 我想编写一个与用户交互的脚本,即使该脚本位于管道链的中间。 具体例子 具体来说,它用file或来stdin显示行(带有行号),要求用户输入选择或行号,然后将相应的行打印到stdout。我们将此脚本称为selector。然后,基本上,我希望能够 grep abc foo | selector > myfile.tmp 如果foo包含 blabcbla foo abc bar quux xyzzy abc 然后selector向我展示(在终端上,而不是在myfile.tmp!中)带有选项 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: 之后我输入 2-3 并以 foo abc bar xyzzy abc 作为的内容myfile.tmp。 我已经启动并运行了一个选择器脚本,如果我不重定向输入和输出,则基本上可以正常运行。所以 selector foo 表现得像我想要的。但是,当像上面的示例中那样将内容管道在一起时,selector将显示的选项打印到myfile.tmp并尝试从grepped输入中读取选择。 我的方法 我尝试使用的-u标志read,如 exec 4< /proc/$PPID/fd/0 exec …

4
Bash脚本如何知道其运行方式?
我正在尝试制作一个Bash脚本,以帮助我运行一个相当复杂的命令,并进行一些小的更改,使其通过echo和read向我询问。 我找到了迫使其运行终端以执行命令的解决方案,但我对此并不感兴趣。我想做的是,如果我在Nautilus中放开并在Enter上按Enter(使其与Run Software一起运行),它会轻轻弹出一个通知,提示“请从终端运行此程序”。 我可以使弹出窗口发生-就像我知道的命令一样-但我无法让Bash脚本来判断它是否在终端中运行,似乎总是这样。可能吗

3
阅读时如何处理退格键?
我如何处理输入的退格键,它显示^?是否尝试过以及如何read计算字符,因为12^?3已经有5个字符完成了(尽管它们都不是实际的输入),但是在12^?3^?返回提示后,很奇怪。请帮忙! -bash-3.2$ read -n 5 12^?3^?-bash-3.2$
10 bash  shell  line-editor  read 

3
bash中$&的用法是什么?
我正在研究bash中的特殊参数。我很好奇知道$&它是什么以及与它有什么不同$_。 运行命令时,我看到以下输出,但也找不到相应的含义。 k@Linux:~$ echo $& [1] 12397 $ k@Linux:~$ echo $n [1]+ Done echo $ k@Linux:~$
10 bash  shell 

6
如何删除bash中的尾随换行符?
我正在寻找行为类似于Perl的产品chomp。我正在寻找一个仅打印其输入的命令,如果它是换行符,则减去最后一个字符: $ printf "one\ntwo\n" | COMMAND_IM_LOOKING_FOR ; echo " done" one two done $ printf "one\ntwo" | COMMAND_IM_LOOKING_FOR ; echo " done" one two done (Bash和Zsh中的命令替换会删除所有尾随的新行,但是我正在寻找一种最多删除一个尾随的新行的东西。)

2
为什么在远程计算机上运行脚本时文件名为什么包含问号?
我有一个很小的脚本,可以简单地获取当前日期,运行PHP脚本并将输出(和错误)重定向到包含当前日期的文件名。 DATE=$(date +"%Y%m%d") FILE="log/${DATE}.log" php -q script.php >> $FILE 2>&1 当我在本地计算机(Windows 7,Aptana IDE)上运行此脚本时,PHP脚本可以正常工作,并且日志文件具有预期的文件名,例如20140502.log。 但是,当我通过SFTP将脚本推送到我的远程计算机并执行该脚本时,文件名看起来像这样: 20140502?.log? 可能是什么问题?这是一个必然的错误吗(例如,SFTP上传的编码是ANSII,期望使用UTF-8)?还是我必须更改脚本本身中的任何内容? 有关系统/外壳的信息: [foo@bar path]$ sh --version GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) 有趣的事实:如果该脚本由cronjob调用,则不会出现问号。仅当我手动运行脚本时。

2
用bash打印系统剪贴板内容
有一种方法可以通过将一些命令输出输出到系统剪贴板xclip。 some-command | xclip -selection clipboard 我想执行相反的任务-将系统剪贴板打印到终端。怎么做?
10 bash  xorg  clipboard 

1
了解IFS的默认值
在我的GNU bash版本4.2.8中,IFS默认具有空格,制表符和换行符的默认值: usr@T42 ~ $ echo -n "$IFS" | hexdump -C 00000000 20 09 0a | ..| 00000003 usr@T42 ~ $ 有没有使用默认IFS的理由?另外,除了bash内置之外,哪些实用程序还使用IFS read?
10 bash  shell  quoting 

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.