标签: .bash-profile

Bash函数参数返回错误"未找到命令"

我在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)

谁能告诉我我做错了什么?

bash shell .bash-profile bash-function

9
推荐指数
1
解决办法
9222
查看次数

〜/ .profile,〜/ .bashrc和〜/ .bash_profile没有在新终端上运行启动

我正在尝试为我的终端创建一个永久别名.我把别名放在我的〜/ .profile,〜/ .bashrc和〜/ .bash_profile文件中,以前是空的.当我启动一个新的终端时,bash不能识别别名,但是如果我找到它们中的任何一个,那就确实如此.为什么打开终端时这些没有运行?我在OSX上.

macos bash terminal .bash-profile

9
推荐指数
4
解决办法
2万
查看次数

通过终端批量构建和存档iOS应用程序

我正在尝试简化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)

bash shell .bash-profile ios xcode4.2

8
推荐指数
2
解决办法
4788
查看次数

找不到NGINX brew安装命令

我做

$ 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)

bash homebrew command-line nginx .bash-profile

8
推荐指数
1
解决办法
1万
查看次数

为什么我每次都需要获取bash_profile

我已经安装了Hadoop,每次我想运行它时,首先我必须这样做:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

或者它不会识别命令 hadoop

这是为什么?

我在OSX 10.8上

hadoop .bash-profile

8
推荐指数
4
解决办法
7715
查看次数

在bash_profile中设置路径

为什么设置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)

unix bash terminal .bash-profile

8
推荐指数
1
解决办法
1万
查看次数

检查上一个命令是否"有效"

我有一个定义的函数.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(或最后一个"真实"命令的输出),即使我所做的只是按下返回按钮而没有实际执行命令(示例输出).

如果命令实际运行,我怎么能让脚本只显示消息?

bash .bash-profile

8
推荐指数
1
解决办法
619
查看次数

为无登录用户设置环境变量

我有一个安装了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

8
推荐指数
1
解决办法
3044
查看次数

找到我的bash配置文件

有没有办法找到当前正在使用的bash配置文件的名称.我搜索了.profile或.bashrc但没有找到它们.但是我仍然可以打印一些env变量,即$ HOME,$ PATH

bash .bash-profile

7
推荐指数
1
解决办法
1万
查看次数

不能在.bash_profile中使用错误终端

我在我的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文件中获取它?

macos terminal .bash-profile

7
推荐指数
2
解决办法
1万
查看次数