Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

6
如何从匹配行之后删除文件中的所有行?
我有一个由几行文本组成的文件: The first line The second line The third line The fourth line 我有一个字符串,其中之一是: The second line 我要删除字符串,并在文件中后,所有行,因此它会删除The third line,并The fourth line在除了字符串。该文件将变为: The first line 我在google上搜索了一个解决方案,似乎应该使用sed。就像是: sed 'linenum,$d' file 但是如何找到字符串的行号?或者,我还应该怎么做?
84 linux  bash  sed 

6
是否在Bash中运行最后一条命令?
我试图回显在bash脚本中运行的最后一个命令。history,tail,head,sed从解析器的角度来看,当命令代表脚本中的特定行时,我找到了一种可以很好用的方法。但是在某些情况下,例如在将命令插入到case语句中时,我得不到预期的输出: 剧本: #!/bin/bash set -o history date last=$(echo `history |tail -n2 |head -n1` | sed 's/[0-9]* //') echo "last command is [$last]" case "1" in "1") date last=$(echo `history |tail -n2 |head -n1` | sed 's/[0-9]* //') echo "last command is [$last]" ;; esac 输出: Tue May 24 12:36:04 CEST …
84 bash  command 


9
gpg无需键盘交互即可加密文件
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 去年关闭。 改善这个问题 我正在crontab中运行下一个命令来加密文件,并且我不想键盘交互 echo "PASSPHRASE" | gpg --passphrase-fd 0 -r USER --encrypt FILENAME.TXT 但是我有这个答案: gpg: C042XXXX: There is no assurance this key belongs to the named user pub 40XXX/C042XXXX 2012-01-11 Name LastName. (comment) <user@email.com> Primary key fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX …
84 bash  crontab  gnupg 


3
如何在已部署的Heroku应用程序上查看文件和文件结构
我在Heroku上部署的客户端应用程序允许用户将图像上传到Heroku。我想测试一下我对删除图像所做的更改,因此我需要一种方法来查看Heroku上文件夹结构的状态,以确保成功删除文件系统中的图像。 我试过了 - $ heroku run bash --app <appName> ~$ pwd ~$ cd <path to images folder> 但在这里我只能看到与应用程序一起上传的图像,而不是通过客户端应用程序上传的图像。 我究竟做错了什么?
84 bash  heroku 

3
如何从文本文件中删除非UTF-8字符
我有一堆用utf-8编码的阿拉伯文,英文,俄文文件。尝试使用Perl脚本处理这些文件时,出现以下错误: Malformed UTF-8 character (fatal) 手动检查这些文件的内容,发现它们中有一些奇怪的字符。现在,我正在寻找一种自动从文件中删除这些字符的方法。 反正有做吗?

3
Bash CTRL在单词/字符串之间移动光标
我CTRL习惯于在使用左右箭头键时使用键来加快移动速度(转到单词的末尾,而不是一次输入一个字符)。 我可以以某种方式进行bash吗? 我可能可以编写代码,但是我想知道是否有更简单/已经完成的事情。
84 bash 

10
使用printf将ASCII值整数转换为BASH中的字符
角色到价值的作品: $ printf "%d\n" \'A 65 $ 我有两个问题,第一个是最重要的: 我该如何将65变成A? \'A使用printf将ASCII字符转换为其值。语法是特定于printf还是在BASH中的其他地方使用?(这样的小字符串对于Google来说很难。)
84 bash  ascii  printf 

10
如何grep,排除某些模式?
我想在文件中查找出现某种模式而没有某种其他模式的行。例如,我需要找到所有文件/行,包括loom带有的文件/行gloom。所以,我可以loom用命令找到: grep -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) 现在,我要搜索loom排除gloom。但是,以下两个命令均失败: grep -v 'gloom' -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) grep -n 'loom' -v 'gloom' ~/projects/**/trunk/src/**/*.@(h|cpp) 我应该怎么做才能实现自己的目标? 编辑1:我的意思是loom和gloom是字符序列(不一定是单词)。因此,例如,我需要bloomberg在命令输出中,不需要ungloomy。 编辑2:有我的期望的样本。以下两行都在命令输出中: 我面对着穿过香气笼罩的标志。 附庸风雅的slooming在一个阴沉的一天。 以下两行均不在命令输出中: 这是令人沮丧的令人沮丧的阴毛–伟大的穆勒杜勒犬或血栓。 在高皮特特大厅的西南圆
84 bash  grep 

2
如何在bash脚本中使用正则表达式?
我想使用正则表达式检查变量是否具有有效年份。阅读bash手册,我知道我可以使用运算符=〜 看下面的示例,我希望看到“不正确”,但我看到“确定”。我究竟做错了什么? i="test" if [ $i=~"200[78]" ] then echo "OK" else echo "not OK" fi

8
在后台运行bash命令而不打印作业和进程ID
在bash中在后台运行进程非常容易。 $ echo "Hello I'm a background task" & [1] 2076 Hello I'm a background task [1]+ Done echo "Hello I'm a background task" 但是输出是冗长的。在第一行上打印后台任务的作业ID和进程ID,然后我们获得命令的输出,最后获得作业ID,其状态和触发该作业的命令。 有没有一种方法可以抑制运行后台任务的输出,以使输出看起来与没有“ and”符的情况完全相同?即: $ echo "Hello I'm a background task" & Hello I'm a background task 我问的原因是我想将后台进程作为tab-completion命令的一部分运行,因此该命令的输出必须不间断才能有意义。

4
如何将用户输入读入Bash中的变量?
我正在尝试创建一个脚本,以简化在iOS设备上创建新用户的过程。以下是分解步骤。 # fullname="USER INPUT" # user="USER INPUT" # group=$user # uid=1000 # gid=1000 # home=/var/$user # echo "$group:*:$gid:$user" >> /private/etc/group # echo "$user::$uid:$gid::0:0:$fullname:$home:/bin/sh" >> /private/etc/master.passwd # passwd $user # mkdir $home # chown $user:$group $home 如您所见,某些字段需要输入。如何在脚本中请求输入变量?
83 bash  shell 


2
为什么我的bash提示不更新?
我是git的新手,正在尝试将当前git分支添加到我现有的提示中,其定义如下: RESET="\[\017\]" NORMAL="\[\033[0m\]" RED="\[\033[31;1m\]" YELLOW="\[\033[33;1m\]" WHITE="\[\033[37;1m\]" SMILEY="${WHITE}:)${NORMAL}" FROWNY="${RED}:(${NORMAL}" SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi" export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} " 我尝试了一下(通过.bashrc再次采购文件),它似乎可以工作,但是后来我转到另一个分支,它没有更新。如何确定$(__git_ps1)未缓存?
83 git  bash  ps1 

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.