我在bash脚本中有这个功能,用来创建一个新的jekyll帖子; 但它返回参数作为未找到的命令.这是脚本:
function new_post () {
if [ -z "$1" ]
then
read -p "Post Title:" TITLE
else
TITLE= "$1"
fi
FILE=$( echo $TITLE | tr A-Z a-z | tr ' ' _ )
echo -e '---\nlayout: post\ntitle: '$TITLE'\npublished: false\n---\n' > $(date '+%Y-%m-%d-')"$FILE"'.md'
}
Run Code Online (Sandbox Code Playgroud)
但每当我尝试运行它时,它返回:
$>new_post "Hello World"
-bash: Hello World: command not found
Run Code Online (Sandbox Code Playgroud)
它似乎试图将参数作为命令运行.
我甚至试过这个并得到了相同的结果
$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n---
-bash: Hello World: command not found
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么?
我正在尝试为我的终端创建一个永久别名.我把别名放在我的〜/ .profile,〜/ .bashrc和〜/ .bash_profile文件中,以前是空的.当我启动一个新的终端时,bash不能识别别名,但是如果我找到它们中的任何一个,那就确实如此.为什么打开终端时这些没有运行?我在OSX上.
我正在尝试简化iOS应用程序发布的构建 - >存档 - >提交过程.我们有超过50个移动应用程序具有几乎相同的框架,但具有不同的图稿和配置设置.
我通常会在xcode 4.2和build-> archive->中加载每个项目,并使用xcode GUI提交常规方法,但我们现在已经有超过50个应用程序,并且这个过程在我们推出更新时非常烦人.
话虽这么说,我试图使用shell函数加速这个过程.我做了大量的研究,发现xcodebuild(请参阅Reid的答案)应该可以工作,但是Archive选项不起作用,因为我收到以下错误:
unsupported build action 'archive'
Run Code Online (Sandbox Code Playgroud)
所以我写了以下内容:
# $1 should be a date like: 2012-07-17
# $2 should be a time like: 10.31AM
# $mybase will be the current directory at the time the function was called
# so make sure to cd into the folder containing the xcode project folders first
function xcodeArchive {
mkdir ~/Library/Developer/Xcode/Archives/$1
mybase=$PWD
for x in `ls`
do
mkdir ~/Library/Developer/Xcode/Archives/$1/$x
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products
mkdir …Run Code Online (Sandbox Code Playgroud) 我做
$ brew install nginx
Run Code Online (Sandbox Code Playgroud)
得到:
==> Downloading http://nginx.org/download/nginx-1.2.2.tar.gz
Already downloaded: /Library/Caches/Homebrew/nginx-1.2.2.tar.gz
==> Patching
patching file conf/nginx.conf
==> ./configure --prefix=/usr/local/Cellar/nginx/1.2.2 --with-http_ssl_module --with-pcre --with-ipv6 --with-cc-opt=-I/usr/local/include --with-ld-opt=-L/usr/local/lib --conf
==> make
==> make install
==> Caveats
In the interest of allowing you to run `nginx` without `sudo`, the default
port is set to localhost:8080.
If you want to host pages on your local machine to the public, you should
change that to localhost:80, and run `sudo nginx`. You'll need to turn off
any …Run Code Online (Sandbox Code Playgroud) 我已经安装了Hadoop,每次我想运行它时,首先我必须这样做:
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
或者它不会识别命令 hadoop
这是为什么?
我在OSX 10.8上
为什么设置a PATH要求:${PATH}最后?
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
Run Code Online (Sandbox Code Playgroud)
当我为此添加一条路径时,我会这样做
PATH=$PATH:...
Run Code Online (Sandbox Code Playgroud)
如何在PATH不进入新行的情况下附加a .也就是说,我如何将a附加PATH到原始PATH语句中.
例如,如果我想将所有内容放在第一行.这如何与:${PATH}零件相互作用?
PATH=$PATH:/usr/local/mysql/bin
Run Code Online (Sandbox Code Playgroud) 我有一个定义的函数.bashrc,显示上一个命令是否成功完成(从完整版本简化):
function previous_command_status()
{
if [ $? -eq 0 ]; then
echo "Command successful"
else
echo "Command failed with exit code $exit_code"
fi
}
PROMPT_COMMAND="previous_command_status"
Run Code Online (Sandbox Code Playgroud)
问题是,Command successful当我开始提示时立即显示,即使我还没有"正式"运行任何命令.第二个(并且出于同样的原因),脚本显示Command successful(或最后一个"真实"命令的输出),即使我所做的只是按下返回按钮而没有实际执行命令(示例输出).
如果命令实际运行,我怎么能让脚本只显示消息?
我有一个安装了tomcat的RHEL服务器.Tomcat作为一个名为tomcat的无登录用户运行.我已将所需的环境变量设置为as /etc/profile.d/myenvvars.sh
export JRE_HOME=/usr/lib/jvm/jre
export MY_VAR=/usr/share/mydir
Run Code Online (Sandbox Code Playgroud)
环境变量已设置并可在终端中使用进行回显
# echo $MY_VAR
# sudo -u tomcat echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)
但是当tomcat启动时,tomcat无法识别我的环境变量.
根据这篇文章,我发现当tomcat启动时我的环境变量将无法被识别,因为tomcat是一个非登录用户.因此我在使用中获取了上述文件 ~/.bash_profile
. /etc/profile.d/myenvvars.sh
Run Code Online (Sandbox Code Playgroud)
但是,我仍然有同样的问题,环境变量没有被重新认识.
任何帮助,将不胜感激.
linux tomcat environment-variables login-script .bash-profile
有没有办法找到当前正在使用的bash配置文件的名称.我搜索了.profile或.bashrc但没有找到它们.但是我仍然可以打印一些env变量,即$ HOME,$ PATH
我在我的Mac OS X上向我的.bash_profile添加了一些内容,但是它们给出了错误.现在,当我启动终端时,这是我的整个文本日志:
Last login: Thu Oct 25 23:10:03 on ttys000
dirname: illegal option -- b
usage: dirname path
-bash: /bin/naoqi-bin: No such file or directory
-bash: exec: /bin/naoqi-bin: cannot execute: No such file or directory
[Process completed]
Run Code Online (Sandbox Code Playgroud)
问题是,由于"过程完成",我无法使用终端.我如何访问.bash_profile(我无法找到如何从finder中找到),或者如何再次正常运行终端以便我可以从.bash_profile文件中获取它?
.bash-profile ×10
bash ×7
terminal ×3
macos ×2
shell ×2
command-line ×1
hadoop ×1
homebrew ×1
ios ×1
linux ×1
login-script ×1
nginx ×1
tomcat ×1
unix ×1
xcode4.2 ×1