Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

1
Bash:可选地将参数传递给命令
我试图将参数添加到命令调用取决于另一个变量。请查看shell脚本代码: curl \ $([ -z "${title}" ] || echo --data-urlencode title=${title}) \ http://example.com 在示例中,如果title给定的值不为null,则会将参数添加到curl。 如果title包含空格,这将无法正常工作。同样,我也不$(...)能用引号引起来,因为如果title为null,它将产生意外的空参数curl。 我应该怎么做才能使其按预期工作。

4
在Bash提示符的函数中转义非打印字符
在Bash提示符(PS1变量)中,我正在调用一个函数来向提示添加文本: export PS1="\u@\h \$(my_function) \$ " 但是,提示中的函数包含ANSI颜色代码,这些代码根据函数的输出而变化(有时是红色,有时是绿色)。添加“ \[ “PS1变量应该将这些代码转义为非打印,但是如果我这样做的话 echo 在功能中,“ \[ “在提示中按字面打印。 如何从函数中转义这些ANSI颜色代码以用于bash提示符?
20 bash  prompt  ansi 

3
使用管道将两个参数传递给命令
通常,我们只需要传递一个参数: echo abc | cat echo abc | cat some_file - echo abc | cat - some_file 有没有办法传递两个参数?就像是 {echo abc , echo xyz} | cat cat `echo abc` `echo xyz` 我可以先将结果存储在一个文件中 echo abc > file1 echo xyz > file2 cat file1 file2 但后来我可能不小心覆盖了一个文件,这是不行的。这将进入非交互式脚本。基本上,我需要一种方法将两个任意命令的结果传递给 cat 无需写入文件。 更新: 对不起,该示例掩盖了问题。而 { echo abc …


4
我应该在所有脚本上都使用* .sh和* .rb文件扩展名吗?
我的$ HOME / bin目录中有一堆手动滚动的可执行脚本。有些用bash编写,有些用Ruby编写。他们所有人的顶部都有shebang行,告诉shell使用什么解释器(在我的例子中是bash或Ruby)。 我想知道将文件扩展名放在这些脚本上以指示它们使用的脚本语言是否更好?例如,Ruby中的脚本将带有* .rb后缀,而bash的脚本将带有* .sh后缀。 当前,这些脚本仅具有简单名称,没有文件扩展名。 最佳做法是什么?

3
install -c与cp有何不同
install -c和cp有什么区别?大多数安装都倾向于使用install -c,但是从手册页看,它听起来似乎与cp没什么不同(也许设置权限除外)。什么时候应该使用install -c和cp?
20 linux  installation  bash  cp  sh 


2
如何防止或中断终端中的意外复制/粘贴?
当我粘贴到终端中时,有时剪贴板中的内容不是我所期望的。具体来说,有时是网站上的页面和文字页面。 发生这种情况时,终端会发疯,快速闪烁并command not found尽可能快地吐出水。 恐怕总有一天文字会包含rm -rf /。 最好的方法是: 当我犯这样的错误时该怎么做? 防止发生这样的错误? 有关详细信息,我在Linux上的urxvt终端的GNU屏幕窗口中使用bash。 平时Ctrl-C还是Ctrl-Z对我的经验没有影响。


4
bash home / end / delete键正在插入波浪号,或者如果前面有转义键,则[1〜[3〜
在bash,所述home/ end/ delete键被插入,或者如果前面由逃逸密钥的代字号:[1~ 所以我输入echo hellp,将光标移到,hel|lp然后输入delete,然后bam,我得到了~tilde 另外,我输入echo hellp,将光标移到,hel|lp然后输入esc,然后删除,然后bam,我得到了[3~ $ echo hel~lp hel~lp $ echo hell[3~o hell[3~o ~ 我的bash版本: $ bash --version GNU bash, version 3.1.17(1)-release (i686-pc-msys) Copyright (C) 2005 Free Software Foundation, Inc. 我想要的是这样的行为cmd.exe: 我希望Esc清除当前行/缓冲区 我希望Home将光标移动到第一个字符之前的行首 我希望End将光标移动到第一个字符之前的行尾 我想删除以从当前行/缓冲区中删除下一个字符(光标的右边) 我必须编辑什么才能解决此问题?这是您的bash上的默认设置吗? 更新:我在运行Windows程序sh.exe的Windows机器上(如您在GNU bash上面所看到的),使用mingw为msys编译: $ uname -s -m -o MINGW32_NT-5.1 i686 Msys

1
如何给时间命令加参数(ubuntu)
我想获得比标准时间命令所提供的信息更多的信息,因此我想传递详细标志。info time给出了一个例子time -v sleep 4,但是当我执行它(在bash或tcsh中)时,我得到 % time -v sleep 4 -v: Command not found. 0.000u 0.000s 0:00.00 0.0% 0+0k 0+0io 0pf+0w 我究竟做错了什么?
20 ubuntu  bash  time 

5
在Linux中搜索文本模式
我是linux新手。我需要在/ home / user1 /(包括子文件夹)下的所有* .java文件中搜索字符串“ teststring”。我该如何在Linux中通过Shell命令执行此操作。
20 linux  bash 

7
强制bash脚本使用tee而不使用命令行管道
我有一个带有大量输出的bash脚本,我想更改该脚本(而不是创建一个新脚本)以将所有输出复制到一个文件中,就像通过tee通过管道将其复制一样。 我有一个文件script.sh: #!/bin/bash init do_something_that_outputs_stuff_to_STDOUT launch_applications_that_output_to_STDOUT fini 而且我想将STDOUT复制到文件script.log,而不必./script.sh | tee script.log每次都键入。 谢谢汤姆
20 bash 

2
如何在OS X上设置cron作业以在每天的特定时间运行curl命令?
我有一个CURL命令,我想每天凌晨3点运行,但是我不确定如何设置它,而且指南也很奇怪。 假设我有很多终端/ bash经验,但是我以前从未设置过cron。 cron作业是否可以唤醒我的计算机,即使它正在睡眠并且盖上了盖子(macbook pro),也只是运行此curl命令然后又使其重新进入睡眠状态? 我该如何设置?
20 macos  mac  bash  cron 

8
Windows 7上Git Bash的手册页
我在Windows 7上使用Git bash。它为我提供了一种方法,可以使用我以前在Ubuntu计算机上的bash shell上使用的大多数命令。但是man和info命令不起作用。有没有办法让这些(令人难以置信的)文档命令在Windows的Git bash shell上运行?
20 windows-7  bash  git  man 

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.