Questions tagged «bash»

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


2
在git show / git diff中将tabwidth设置为4
在工作中,我们有几位开发人员,没有代码样式指南,有些开发人员使用制表符缩进,另一些开发人员使用4个空格(幸运的是,缩进的人都没有使用4个空格)。通常,这不是(大)问题,因为在我们的编辑器中我们进行了设置,tabwidth=4并且所有缩进似乎都是正确的。 但git diff还是git show那出现什么: diff --git a/mesclatabs.php b/mesclatabs.php new file mode 100644 index 0000000..1986c91 --- /dev/null +++ b/mesclatabs.php @@ -0,0 +1,5 @@ +<?php +function foo() { + echo "line with 1 tab\n"; + echo "line with 4 spaces\n"; +} 问题是git diff或者git show每个选项卡出现了多达8个空格(实际上,实际上是作为一个选项卡出现了,而shell(我的情况是bash)将选项卡显示为8个空格)。这样,但是我想知道git是否可以选择将制表符输出为diff/中的4个空格show,因为有些开发人员使用zsh而不是bash。 有任何想法吗?
70 git  bash  tabs  whitespace  spaces 

5
将IFS设置为在换行符上分割时,为什么需要包含退格键?
我很好奇为什么将IFS设置为在换行符上拆分时为什么需要退格键: IFS=$(echo -en "\n\b") 为什么我不能只使用它(不起作用)呢? IFS=$(echo -en "\n") 我在使用Unix行尾保存文件的Linux系统上。我已经用换行符将文件转换为十六进制,并且肯定只使用“ 0a”作为换行符。 我已经在Google上搜索了很多,尽管有很多页面记录了换行符和后退解决方案,但是我发现却没有一个解释为什么需要退格。 -大卫。
70 linux  bash 


5
用“ sudo”重复上一个命令
我经常忘记使用来运行命令sudo。我正在寻找一种使bash函数(或别名)与重复最后一个命令的方法sudo。就像是: S() { sudo $(history 1) } 有任何想法吗?
70 bash 

15
$ {var}参数扩展表达式可以嵌套在bash中吗?
我所拥有的是: progname=${0%.*} progname=${progname##*/} 可以将它嵌套(或不嵌套)到一行,即一个表达式中吗? 我正在尝试删除脚本名称的路径和扩展名,以便仅保留基本名称。以上两行工作正常。我的“ C”本质只是在驱使我更加混淆这些。
70 bash 




7
带有最后退出代码的Bash提示
因此,我一直在尝试通过bash提示进行自定义,以使其看起来像 [feralin@localhost ~]$ _ 颜色。我设法获得了恒定的颜色(每次看到提示时,颜色都是相同的),但是如果最后一个命令的退出状态为非零,我希望用户名(“ feralin”)显示为红色,而不是绿色。我想出了: \e[1;33m[$(if [[ $? == 0 ]]; then echo "\e[0;31m"; else echo "\e[0;32m"; fi)\u\e[m@\e[1;34m\h \e[0;35m\W\e[1;33m]$ \e[m 但是,从我的观察来看,运行$(if ...; fi)时似乎只对一次求值.bashrc,然后永远替换结果。即使最后一个退出代码为非零(如),这也使名称始终为绿色echo $?。这是怎么回事吗?还是提示出现其他问题?长话短说,如何提示我使用最后一个退出代码?
70 linux  bash  prompt 



14
在shell脚本中使用passwd命令
我正在编写一个Shell脚本,以自动添加新用户并更新其密码。我不知道如何获取passwd来从shell脚本中读取,而不是交互式地提示我输入新密码。我的代码如下。 adduser $ 1 密码$ 1 2美元 2美元
70 linux  bash  unix  shell 


7
如何删除以双连字符开头的文件?
我的Unix机器上有一些文件以 -- 例如 --testings.html 如果尝试删除它,则会出现以下错误: cb0$ rm --testings.html rm: illegal option -- - usage: rm [-f | -i] [-dPRrvW] file ... unlink file 我试过了 rm "--testings.html" || rm '--testings.html' 但没有任何效果。 如何在终端上删除此类文件?
70 bash  unix  filenames 

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.