我正在尝试编写一个 bash 脚本,其中每个命令都通过一个使用以下行评估命令的函数:
eval $1 2>&1 >>~/max.log | tee --append ~/max.log
Run Code Online (Sandbox Code Playgroud)
它不起作用的一个例子是在尝试评估 cd 命令时:
eval cd /usr/local/src 2>&1 >>~/max.log | tee --append ~/max.log
Run Code Online (Sandbox Code Playgroud)
导致问题的部分是 | tee --append ~/max.log 部分。知道为什么我遇到问题吗?
我正在开发一个项目,以在我的 GitLab CE 实例中远程创建一个存储库(该部分正在运行!)然后使用项目名称(正在运行!)和 cd 到该目录中创建一个目录(这是我的位置问题...)然后在本地初始化并添加远程存储库(工作!!!)
我遇到的问题只是更改为新目录。无论我是使用下面显示的代码,还是只是尝试cd "$1"或cd "$*"我似乎根本无法让它工作!
#!/bin/bash
dir="$*"
wd=$(pwd)
fulldir="$(pwd)/${dir// /\\ }/"
echo "Creating directory $dir"
mkdir -v "$dir"
cd "$dir"
echo "Changing current directory to $dir"
echo $dir
echo $fulldir
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是:
root@cana:~# ls
glnewproj test
root@cana:~# bash test Hello World
Creating directory Hello World
mkdir: created directory 'Hello World'
Changing current directory to Hello World
Hello World
/root/Hello\ World/
root@cana:~# ls
Hello World glnewproj test
root@cana:~# pwd
/root
Run Code Online (Sandbox Code Playgroud)
如何cd进入我新创建的目录?我完全被难住了。
处理受版本控制的项目时,我经常最终进入嵌套文件夹.使用cd ../../有点麻烦,所以我想知道是否有一种方法可以在bash中定义cd到父级的别名,直到它到达带有文件夹的.git文件夹,或者它到达~.
所以我们这样说吧
~/my-project 是一个git存储库~/my-project/deeply/nested/folder/structure~/my-project什么命令可以做到这一点?我需要一个bash功能吗?
当你有类似的东西..
在projectx中给出一个.rvmrc文件,指定ruby 1.9.2并在我的系统上有两个红宝石(ree-1.8.7和ruby1.9.2)
#!/bin/bash
cd applications/projectx
which ruby
ruby -v
Run Code Online (Sandbox Code Playgroud)
最后两行输出ree-1.8.7及其路径,这不是我打算使用的.
当我尝试使用cd~/.ssh转到.ssh目录时,它正确导航到该目录但我找不到__git ps1:命令.不确定为什么会发生这种情况以及如何解决问题.
这是我的bashrc文件
#Git tab completion
source ~/git-completion.bash
# Show branch in status line
PS1='[\W$(__git_ps1 " (%s)")]\$ '
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
Run Code Online (Sandbox Code Playgroud) 我想要一个存储在桌面上的.bat文件来执行两个简单的任务:1.启动cmd.exe 2.将目录更改为c:\ executionsdktest_10.2.2我有:
@echo off
start cmd.exe \k
cdsdad c:\ExecutionSDKTest_10.2.2
Run Code Online (Sandbox Code Playgroud)
但是,当我双击.bat文件时,这会启动cmd.exe但cd到c:\ users\qestester\desktop.有任何想法吗?
在xiki for sublime中我运行这一行
$cd /Users/my_name
Run Code Online (Sandbox Code Playgroud)
没有错误或任何出现.但是当我运行此命令时
$pwd
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出
/Users/my_name/Library/Application Support/Sublime Text 2/Packages
Run Code Online (Sandbox Code Playgroud)
它似乎应该在我的主目录中.为什么这不起作用?
使用bat文件,我想更改为bat文件所在的文件夹的子目录,并my_application.exe在该目录中运行,
我尝试:
cd /d %cd%\my subdirectory
START %~dp0my_application.exe
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它说找不到my_application.exe
我在一个迷你项目中工作:"我自己的命令解释器(壳)",像Bash shell或Sh shell.直到现在它可以执行每个预定义的命令,如ls,ps,pwd,date.除此之外,我已经实现了一些其他操作,如输入重定向(<),输出重定向(>),PIPE(|)功能.除此之外,我已经实现了自己的用户命令,如pid,ppid,quit,hist.
vvdnlt208@vvdnlt208-Vostro-3446:~/project/Vector/sourabh/unix/proj2$ ./my_sh
<1 SOURABH> ls
a cd.c execute.o inredir.c main.o multiexec.o my_sh sh.c sigign.c test.c
addhist.c dir header.h inredir.o Makefile mypipe.c outredir.c showhist.c sigign.o tetest.c
addhist.o execute.c inredir main.c multiexec.c mypipe.o outredir.o showhist.o test2.c
<2 SOURABH> ps
PID TTY TIME CMD
6120 pts/10 00:00:01 bash
6510 pts/10 00:00:00 grep
6512 pts/10 00:00:00 grep
6514 pts/10 00:00:00 grep
6516 pts/10 00:00:00 grep
7772 pts/10 00:00:00 my_sh
7774 pts/10 00:00:00 ps
<3 SOURABH> pwd
/home/vvdnlt208/project/Vector/sourabh/unix/proj2
<4 SOURABH> date
Fri …Run Code Online (Sandbox Code Playgroud)