Tag: bash

从文本文件中删除unicode字符 – sed,其他bash / shell方法

如何从terminal上的一堆文本文件中删除unicode字符? 我试过这个,但它没有工作: sed 'g/\u'U+200E'//' -i *.txt 我需要从文本文件中删除这些unicode U+0091 – sort of weird "control" space U+0092 – same sort of weird "control" space A0 – non-space break U+200E – left to right mark

如果variables名存储为string,如何获得一个variables值?

我如何检索一个bashvariables值,如果我有variables名string? var1="this is the real value" a="var1" Do something to get value of var1 just using variable a. 语境: 我有一些AMI( 亚马逊机器图像 ),我想启动每个AMI的几个实例。 一旦他们完成引导,我想要设置每个实例根据其AMItypes。 我不想在任何AMI内部烧制大量的脚本或秘密密钥,所以我准备了一个通用的启动脚本,并将其放在S3上,并提供了一个可公开访问的链接。 在rc.local中,我放了一小段代码来获取启动脚本并执行它。 这是我在AMI所拥有的一切。 然后,每个AMI访问一个适用于所有AMI的通用configuration脚本和每个AMI的特殊设置脚本。 这些脚本是私有的,需要一个签名的URL来访问它们。 所以,现在,当我触发AMI(my_private_ami_1)的一个实例时,我通过一个签名的URL来显示在S3上显示的另一个文件,其中包含键/值对的所有私有脚本的签名URL。 config_url="http://s3.amazo…/config?signature" my_private_ami_1="http://s3.amazo…/ami_1?signature" … 当启动脚本运行时,它会下载上面的文件和source文件。 然后检查它的AMItypes并为自己select正确的设置脚本。 ami\_type=GET AMI TYPE #ex: sets ami\_type to my\_private\_ami\_1 setup\_url=GET THE SETUP FILE URL BASED ON AMI\_TYPE # this is where this […]

我如何使用sed来更改我的configuration文件,灵活的键和值?

我想search这个expression式的configuration文件:“central.database”。 然后我想将与“central.database”关联的设置更改为“SQLTEST”。 最初configuration文件的布局看起来像这样: central.database = SQLFIRSTTEST 这是我希望看起来像sed更换后: central.database = SQLTEST 我正在做一个bash脚本,欢迎任何build议,build议或替代解决scheme! (实际上central.database和SQLTEST都来自bashvariables) 我目前的代码(第三次尝试): sshRetValue=$(ssh -p "35903" -i $HOME/sshids/idrsa-1.old ${1} <<EOF sed -i "s/^\($CENTRAL_DB_NAME\s*=\s*\).*\$/\1$CENTRAL_DB_VALUE/" /home/testing.txt; echo $? EOF ) 错误信息: Pseudo-terminal will not be allocated because stdin is not a terminal. sed: -e expression #1, char 58: unknown option to `s' -bash: line 3: EOF: command […]

检查一个string是否与Bash脚本中的正则expression式匹配

我的脚本收到的一个参数是以下格式的date: yyyymmdd 。 我想检查一下,如果我得到一个有效的date作为input。 我该怎么做? 我正在尝试使用正则expression式: [0-9]\{\8}

如何在Mac上恢复.bash_profile? 我的unixterminal都没有工作

我添加了一些东西到我的bash_profile,同时尝试添加Playframework到我的path和一些糟糕的事情搞砸了。 我将下面一行添加到了我的.bash_profile中 export PATH=$PATH:the path to my play excitable 然后我保存了一切,重新启动了我的terminal。 我终于不能再做任何事了。 我不能cd到任何目录,我不能再findjava,我不能打开vi或nano。 我在超级用户发现这个线程,build议打开一个不同的terminal,并改变bashconfiguration文件。 我尝试打开打开bash /bin/bash 我成功地能够打开另一个terminal,但我仍然无法访问任何常规的Unix命令。 我仍然无法打开vi或nano来删除导致问题的线路。 我试图没有任何运气下载一个新的terminal应用程序 。 我尝试打开隐藏的文件,以便我可以通过运行以下命令使用文本编辑器更改文件: defaults write com.apple.finder AppleShowAllFiles TRUE 但由于我的terminal不工作,也没有工作。 我如何修复我的电脑

在脚本执行后避免gnome-terminalclosures?

我创build了一个bash脚本,可以打开几个gnometerminal,通过ssh连接到教室电脑并运行脚本。 脚本完成后,如何避免gnome-terminalclosures? 请注意,我也希望能够在terminal中input更多的命令。 这是我的代码的一个例子: gnome-terminal -e "ssh root@<ip> cd /tmp && ls"

Linux:复制并创build目标目录,如果它不存在

我想要一个命令(或者可能是cp的一个选项)创build目标目录,如果它不存在。 例: cp -? file /path/to/copy/file/to/is/very/deep/there

等待“任何过程”完成

在bash中是否有任何内置function来等待任何进程完成? wait命令只允许等待subprocess完成。 我想知道在进行任何脚本之前是否有任何方法等待任何过程完成。 一个机械的方法来做到这一点如下,但我想知道是否有任何内置function在bash中。 while ps -p `cat $PID_FILE` > /dev/null; do sleep 1; done

在Bash脚本中的范围内的随机数

我需要从shell脚本生成一个2000-65000之间的随机端口号。 问题是$RANDOM是一个15位数字,所以我卡住了! PORT=$(($RANDOM%63000+2001))如果不是用于大小限制,将会很好地工作。 有没有人有我如何能做到这一点的例子,也许从/dev/urandom提取一些东西,并在一个范围内?

bash / fish命令打印文件的绝对path

问题:是否有一个简单的sh / bash / zsh / fish / …命令来打印我提供的文件的绝对path? 用例:我在/a/b目录下,我想在命令行上打印文件c的完整path,以便我可以轻松地将它粘贴到另一个程序: /a/b/c 。 简单,但一个小程序来做到这一点可能会节省我5秒左右的时间来处理长path,最后加起来。 所以我很惊讶,我找不到一个标准的工具来做到这一点 – 真的没有? 这是一个示例实现,abspath.py: #!/usr/bin/python # Author: Diggory Hardy <diggory.hardy@gmail.com> # Licence: public domain # Purpose: print the absolute path of all input paths import sys import os.path if len(sys.argv)>1: for i in range(1,len(sys.argv)): print os.path.abspath( sys.argv[i] ) sys.exit(0) else: print >> […]