Articles of bash

Linux:在同一行上的特定单词之后提取一个单词

我是一个新的Linux用户,我是自学的,所以我很抱歉如果这个问题是愚蠢的。 我在网上search,但无法find一个正确的答案..我怎样才能提取一个字在Linux(csh)的特定单词后? 更确切地说,我有一个文件,其中有一行看起来像这样的文件: [一些无用的数据] –pe_cnt 100 –rd_cnt 1000 [更多数据] 我想提取–pe_cnt字之后的数字100 。 我不能使用'sed',因为只有当你想要提取整行时才有效。 也许我可以用'awk'? 此外,我有多个文件具有不同的值而不是100,所以我需要的东西,提取的价值,但不依赖于价值。

Windows bat替代Bash内联命令

是否有任何Windows等效的语法来在bat脚本文件中的另一个命令内运行一个命令? 在Linux中,你可以简单地使用$(…)或“。

从WSL Bash启动VS代码

我安装了创作者更新。 WSL正在运行。 我可以通过简单地调用notepad.exe执行大多数.exe文件但是,当涉及到VS代码….我不能使用默认的code命令或调用code.exe …我也尝试过code和code.cmd 。 为什么不像其他程序一样执行VS代码? 有没有办法启用code命令? 编辑:我现在得到这些错误: me @ mypc:/ mnt / c / Users / me / Documents / project_folder $ code。 / mnt / c / Program Files(x86)/ Microsoft VS Code / bin / code:line 7:realpath:comma nd not found / mnt / c / Program Files(x86)/ Microsoft VS Code / bin / […]

添加文件时运行shell命令

我有一个名为在我的Linux机器上的图像的文件夹。 此文件夹连接到网站,并且该网站的pipe理员可以将图片添加到此网站。 但是,添加图片时,我想要一个命令来运行调整目录中的所有图片的大小。 简而言之,我想知道如何在新文件添加到特定位置时使服务器运行特定的命令。

有没有办法在Windows上运行Bash脚本?

我买了,我使用Windows 7旗舰版,我喜欢用它来开发应用程序。 其中一个缺点(与每个操作系统一样)是我无法运行Bash脚本。 有没有办法通过安装一些软件在Windows上运行Bash脚本? 如果它不能100%正常工作,但只要最常用的function可用,它应该是很好的。

确切地说Git Bash for Windows'提示符被定义?

我的办公室和家用电脑都有Git Bash for Windows来源于同一个源码(Git for Windows,TortoiseGit附带),但是Git Bash的提示符在两台机器上都有所不同: 在办公室电脑上我有/c/path (branch)全是绿色的(这是,我怎么想它), 在家用电脑上,我只有path(不分支)和全白。 直到现在我被告知,这是PS1variables,保存在~/.bashrc文件中。 但是,在这两台机器上,这个文件丢失了(执行notepad ~/.bashrc打开空的记事本)。 我迷路了 如果~/.bashrc不存在,那么从哪里Git Bash“知道”,它应该显示当前分支,在绿色提示? 为什么在第二台机器上不会发生这种情况? 编辑 : 我也试图比较两个机器和Git Bash.vbs文件的内容的c:\Program Files\Git\etc\文件夹内容。 在两台计算机上都是一样的,所以我甚至不知道Git Bash的提示符在两台计算机上是不同的(以及如何解决这个问题)。 几个答案(像这样 , 这个和这个 )已经提示我,我应该寻找.bash_profile和.bash_prompt文件。 不幸的是,我的两台电脑上都没有这两个。 究竟是什么文件决定在Windows 7下呢? 我应该在哪里寻找什么, PS1variables的值应该是什么,在两台机器上显示绿色提示的当前分支?

用bash设置一个参数

我经常运行一个简单的bash命令: rpm -Uvh –define "_transaction_color 3" myPackage.rpm 哪个工作正常。 但是现在我试图把它编写成一个bash文件,并且使它更加灵活: #!/bin/bash INSTALL_CMD=rpm INSTALL_OPT="-Uvh –define '_transaction_color 3'" ${INSTALL_CMD} ${INSTALL_OPT} myPackage.rpm 但是,这不断产生错误: error: Macro % has illegal name (%define) 错误来自于如何处理–define和引用的_transaction_color 。 我已经尝试了各种各样的转义,不同的措辞,甚至使INSTALL_OPT数组,处理${INSTALL_OPT[@]} 。 到目前为止,我的尝试没有奏效。 显然,我想要的是非常简单的。 我只是不知道如何完成它。 我怎样才能让bash正确处理我的–define参数?

CMD命令“Git Bash Here”

在Windows中,我可以通过打开右键菜单在当前目录中运行“Git Bash Here”。 我想将gitbashhere.bat放在默认path中,以便从标准cmd窗口轻松访问命令。 sh.exe –login -i命令仅在sh.exe的目录中打开git bash,而不是当前目录。 如何检查绑定到“Git Bash Here”的命令?

Bash – 无缝地运行带有CRLF行结尾的脚本

我正在使用VM(在我的情况下只是boot2docker)在Windows主机上运行docker容器。 为了方便起见,我的源文件是从主机文件系统映射的,所以文本文件默认使用Windows风格的CRLF行尾而不是Unix风格的LF结尾。 当我尝试从Docker容器中运行一些.sh文件时,我会得到一个错误 bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory 有没有办法如何告诉bash / sh解释器自动将\ r \ n转换为\ n并运行一个文件? 当然,我可以做一些像这样的脚本cat script.sh | tr -d "\r" | sh cat script.sh | tr -d "\r" | sh cat script.sh | tr -d "\r" | sh甚至为此创build一个别名,但是它不会涵盖一个脚本包含另一个脚本的情况。 我迄今为止唯一可以接受的解决scheme是将Git设置为以UNIX格式签出源文件。

Shell脚本:通过ssh脚本运行函数

有没有什么聪明的方法通过ssh在远程主机上运行本地Bash函数? 例如: #!/bin/bash #Definition of the function f () { ls -l; } #I want to use the function locally f #Execution of the function on the remote machine. ssh user@host f #Reuse of the same function on another machine. ssh user@host2 f 是的,我知道这是行不通的,但有没有办法做到这一点?