Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用变量更改shell脚本中的目录_Shell_Active Directory_Directory - Fatal编程技术网

如何使用变量更改shell脚本中的目录

如何使用变量更改shell脚本中的目录,shell,active-directory,directory,Shell,Active Directory,Directory,此脚本文件名为“1sr”,我可以在终端“.1sr”中工作 我想更改目录“home/byram/workspace/1/src/com/seri/*” 变量集“bash”的“.1sr”命令之后 如何修复它?我建议在中加入一个名为“prj”的函数。bashrc: prj () { cd /home/byram/workspace/"$1"/src/com/seri } 然后像这样使用它 prj 1 # Switch to ...1/src/com/seri prj 2 # Sw

此脚本文件名为“1sr”,我可以在终端“.1sr”中工作

我想更改目录“home/byram/workspace/1/src/com/seri/*”

变量集“bash”的“.1sr”命令之后
如何修复它?

我建议在
中加入一个名为“prj”的函数。bashrc

prj () {
    cd /home/byram/workspace/"$1"/src/com/seri
}
然后像这样使用它

prj 1    # Switch to ...1/src/com/seri
prj 2    # Switch to ...2/src/com/seri

我在
.bashrc
中添加以下行:

wr (){
cd /home/byram/workspace/"$1"/w
v1=$(ls /home/byram/workspace/"$1"/src/*/*)
v2=$(ls /home/byram/workspace/"$1"/src/*)
v3=$(ls /home/byram/workspace/"$1"/src/)
echo "$v3.$v2.$v1"    
}
适用于任何项目,如com.example.abc、org.samp.xyz


感谢@chepner

既然您的脚本在中没有参数化,为什么不直接硬编码路径呢
cd/home/byram/workspace/1/src/com/seri
bac因为我有很多项目都有“1”、“2”、“3”、“4”目录@chepnerb,但项目嵌入到脚本本身的名称中。您是否有相同的副本和不同的名称来处理不同的项目?是的,我的工作区中有许多项目,如1、2、3、4、5等文件夹@chepnerb,但我也想访问../src/com/seri/*文件,例如../seri/one/您一次只能有一个工作目录。如果
seri
中只有一个子目录,则只需在命令末尾添加一个星号,以匹配该目录。如果有多个子目录,我不知道您要实现什么。
wr (){
cd /home/byram/workspace/"$1"/w
v1=$(ls /home/byram/workspace/"$1"/src/*/*)
v2=$(ls /home/byram/workspace/"$1"/src/*)
v3=$(ls /home/byram/workspace/"$1"/src/)
echo "$v3.$v2.$v1"    
}