Questions tagged «bash»

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

1
我的命令(Heroku)去了哪里?
我希望能够接受这方面的教育,但已经用尽了我的Google搜索,并且对OS X如何找到命令知之甚少。 我已经使用heroku多年了,出于某种原因今天我得到了结果: /usr/local/bin/heroku: /usr/local/bin/ruby: bad interpreter: No such file or directory / usr / local / bin / heroku的第一行产生: #!/usr/local/heroku/ruby/bin/ruby 我在该位置没有ruby目录,但将它与之前的工作备份进行比较我从未在那里进行过。相反,我使用指向我当前红宝石的RVM。 哪个红宝石 /Users/sam/.rvm/rubies/ruby-2.0.0-p353/bin/ruby 所以接下来要尝试的是哪个heroku /usr/local/bin//heroku 这引起了我的兴趣。那个额外的路径分隔符来自哪里?所以这是我的回声$ PATH的结果 /Users/sam/.rvm/gems/ruby-2.0.0-p353/bin:/Users/sam/.rvm/gems/ruby-2.0.0-p353@global/bin:/Users/sam/.rvm/rubies/ruby-2.0.0-p353/bin:/Users/sam/.rvm/bin:/usr/local/share/python:/usr/local/bin/:/usr/local/sbin:/usr/local/heroku/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/local/heroku/bin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin 红宝石-v ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.5.0] 将/ usr / local / bin / ruby​​的第一行更改为ruby rvm的位置会在此文件中的ruby命令上使用上述错误,这很奇怪,因为我没有任何其他容量的ruby问题。 这可能是由于我做了一些蠢事,因为这是最近的现象。我最近重新启动了(尝试Yosemite分区),这是我能在环境中改变的唯一事情。还有什么其他信息可以帮助解决这个问题?,thanx,sam
2 macos  bash  ruby  rvm 


2
在没有root访问权限的Linux计算机上安装xclip?
我试图在没有超级用户权限的Linux计算机上安装xclip,我下载,解压缩并运行./configure但是错误的库出错了: ./configure --prefix=/home/user/bin/xclip/ checking for gcc... /usr/bin/gcc [...] checking for XmuClientWindow in -lXmu... no configure: error: *** libXmu not found *** 如何克服此错误并安装xclip?


3
Bash重命名为时间
如何重命名文件以匹配当前(舍入)时间。如果是例如10:55或11:05那么我想将其重命名为11。 像这样的东西: mv file.txt file_`date +%H`.txt 但是如上所述的舍入。 谢谢

1
在Bash中无意中逃避双引号
我试图在Git bash中添加以下Git别名作为命令(windows用户在这里)。 yolo = "!git init && git remote add origin $1 && git pull" 这似乎都不起作用。前者会引发错误,后者逃脱双引号中.gitconfig来yolo = \"!git init && git remote add origin $1 && git pull\" $ git config --global alias.yolo "!git init && git remote add origin $1 && git pull" $ git config --global alias.yolo '"!git …

2
如何用bash脚本替换引号
我有这个bash脚本 #!/bin/bash find . -type f > /home/wschrabi/filenames while read filename; do stripped="$(printf '%s\n' "$filename" | tr -d -C '[[:alnum:]][[:space:]][!\"\#\$\%\&\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_`{|}~]')"; ohne="$(sed -e 's/[\d126-\d255\"*:<>\?\\\|]/_/g' <<<$filename)"; test "$filename" = "$stripped" || printf "mv '%s' '%s'\n " "${filename//[\']/'\\''}" "${ohne//[\'\"\`]/_}"; done < /home/wschrabi/filenames 在部分${filename//[\']/'\\''}我想用文件名中的单引号替换。目的应该是当我在bash脚本中输出输出时,我想自动重命名所有文件名。但单引号会产生问题。 非常感谢任何建议。沃尔特 编辑:这是完成我的chekc NTFS for Filename脚本。 #!/bin/bash # # Quote a …

1
在scp命令中使用通配符
我有一个bash脚本,它使用scp将几个文件复制到远程服务器。这个脚本工作正常,但现在我需要在名称中添加一个包含通配符的文件,我有一个问题。 #!/bin/sh files=('path1/subpath/file.*.ext' 'path2/subpath2/nowildcard.ext2' 'path3/subpath3/file3.*.ext3'); for j in "${files[@]}"; do echo "File \033[1;38;5;226m$j\033[0m is copying." scp -P12345 $j "name@host:/permanent/path/$j"; done 该脚本使用通配符(例如file.12345.ext或file3.4321.ext3)复制文件,但将文件保存在远程服务器上。* .ext和file3。*。ext3。我试图在文件名中使用反斜杠,但在这种情况下,脚本根本不会复制文件。 如何解决这个问题? 提前致谢。

1
我可以在历史记录脚本中使用wrap命令吗?
假设我有一个命令行界面工具,它没有任何“历史”概念。是否可以编写一个仅执行readlines并将它们转发到工具的小脚本,但是还将这些行存储在历史记录中? (我注意到,while read line; do echo $line; done不支持历史......)

1
首先引用另一个文件的脚本
嗨我有一个脚本,在其中我需要从脚本生成的IP中获取主机名。该脚本将这些IP生成为1个整齐的文件,只有1列。它实际上只是IP地址(每行1个)。我有另一个名为'db'的文件,如下所示: IP Hostname 'db'是我的数据库,它存储委托给这些IP的IP地址和主机名列表。这些是静态地址,不会改变,通常是服务器或交换机等。我需要的是脚本生成的IP地址,我想用这个数据库文件中的主机名FIRST来解决它们,如果它没有找到它,然后运行host命令。我已经在做后者,host但我真的希望它们首先来自我的db文件。最终输出只需要1个文件,其中包含1列主机名。我有一些使用awk和数组的想法,但似乎无法完全得到我需要的东西。

1
如何为bash命令行编辑设置默认编辑器
当我在编辑器中遇到编辑命令行的选项时,我正在学习bash命令行快捷方式。(太棒了!)。 $set -o vi $echo test1 test2 test3 test4 我给了一个ESC然后按下v它给了我这个错误。-bash: /usr/bin/pico: No such file or directory.The EDITOR在我的.bashrc变量是/usr/bin/vim它存在并正常工作。但是为什么这首先要寻找pico?

1
在子shell或后台执行shell命令?
实际上我主要使用Ruby,但现在我已经创建了一个bash脚本文件。从这个脚本文件我在屏幕上显示消息。这是我的情景。 我使用aosd_cat模块在屏幕上显示消息,我成功完成了。为此,我使用了他们的文档。 这是我的message.sh脚本文件: #!/bin/bash function message_1(){ if [ condition ] echo 'message -1' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60 else echo 'message -4' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n …

2
Mac OSX shell不会改变[关闭]
我正在尝试将ZSH作为我的默认shell,我已经使用oh-my-zsh项目中的安装程序进行安装,并且所有安装都很好,但我无法将其更改为默认shell: 当我echo $SHELL给它“,/bin/zsh” 但ps -p $$ 似乎暗示bash(虽然我已经看到这表明,zsh即使它不是) 我也尝试在帐户→高级设置→启动shell和终端首选项中更改它。 使用chsh -s /bin/zsh说“没有变化......”即它也认为zsh正在使用中。 我可以通过键入zsh或手动切换到zsh /bin/zsh,只是不能将其更改为默认值,这是相当烦人的。 有任何想法吗?
2 macos  bash  terminal  zsh 

1
bash - 一次处理一行输出
我读到xargs很适合一次处理一行命令的输出(并且它是)。我的脚本中有以下行。 ./gen-data | awk '{printf $2 " "; printf $1=$2=$3=""; gsub (" ", "", $0);if(length($0) == 0){ print "0000"} else{print $0}}' | xargs -t -n2 -P1 bash -c 'datatojson "$@"' _ 它产生正确的输出,毫无疑问。然而,gen-data产生类似于1000行的东西,而我真正想要的是这个命令在每一行之后执行,而不是在1000行之后执行(它明显停止以获得更多输入)。 以下是gen-data的样子: candump $interface & while true; do while read p; do cansend $interface $(echo $p | awk 'NF>1{print …

2
cd没有转义空格
我将如何创建一个类似的命令cd,但您不需要转义空格?(假设一行中永远不会有多个空格。) 用法示例: cds some directory 与 cd some\ directory
2 bash 

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.