免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 704 | 回复: 7

[系统管理] 程序cd后不起作用 [复制链接]

论坛徽章:
0
发表于 2019-03-12 00:28 |显示全部楼层
文件名是jump,存放路径是/home,内容如下:

#!/bin/sh
if [[ $1 == "" ]];then
echo "no input"
elif [[$1 != ""]];then
echo "jump to /tmp and source .cshell"
cd /tmp && source .cshell
fi



运行:
%:jump
%:no input
%: jump dir
%:  jump: line 4: [[dir: command not found

目的是运行jump dir后,可以cd到/tmp目录,且source .cshell   

论坛徽章:
2
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:56
发表于 2019-03-12 08:48 |显示全部楼层
elif 里中括号少了空格。
如果 要在当前的shell进程里切换目录,应该 用source jump 来运行脚本。因为直接运行脚本 是在子shell进程里运行,相当于只在子进程里切换了目录 ,不会影响到父进程。

论坛徽章:
0
发表于 2019-03-12 13:58 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2019-03-12 14:18 编辑

powershell 没有 多了个空格,少了个空格就不行的问题。实际上,空格,tab,回车的组合,对powershell毫无影响。
例子
-------a.ps1-------
1 +

#这里是回车。

                  #这里有很多tab

2
-----------a.ps1完------------
cd /tmp && source .cshell --------也没有这个问题。



论坛徽章:
28
ChinaUnix元老
日期:2015-02-02 08:55:392017金鸡报晓
日期:2017-01-10 15:13:29CU十四周年纪念徽章
日期:2018-08-29 22:12:2715-16赛季CBA联赛之深圳
日期:2018-09-20 12:21:09
发表于 2019-03-14 13:41 |显示全部楼层
elif [[ $1 != "" ]];then
空格不能少

论坛徽章:
0
发表于 2019-03-14 23:21 |显示全部楼层
cfwyy 发表于 2019-03-12 08:48
elif 里中括号少了空格。如果 要在当前的shell进程里切换目录,应该 用source jump 来运行脚本。因为直接运 ...

嗯,谢谢提醒。


可以不用source吗?  因为我的用法是:jump dir,进入目录并source一个文件,如果改用source的话是不是要: source jump?那怎么确定是jump到dir呢?

另外有朋友提示可以用exec,也试过,好像不行。

以前在一家外包公司,他们就是直接用jump dir实现我上面说的功能,但是当时没有看源代码,不知道怎么实现的。

论坛徽章:
0
发表于 2019-03-14 23:26 |显示全部楼层
#!/bin/sh
if [[ $1 == "" ]]; then
echo "no input"
elif [[ $1 != "" ]]; then
echo "jump to dir"
cd /tmp && echo "jump ok"
fi


[a0003@as001 ~]$ pwd
/home/a0003
[a0003@as001 ~]$ ./test.sh
no input
[a0003@as001 ~]$ ./test.sh dir
jump to dir
jump ok
[a0003@as001 ~]$ pwd
/home/a0003
[a0003@as001 ~]$

论坛徽章:
0
发表于 2019-03-14 23:26 |显示全部楼层
本友会机友会摄友会 发表于 2019-03-12 13:58
powershell 没有 多了个空格,少了个空格就不行的问题。实际上,空格,tab,回车的组合,对powershell毫无 ...

朋友,谢谢了,不过回归正题,有办法实现我说的吗?谢谢

论坛徽章:
2
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:56
发表于 2019-03-15 08:13 |显示全部楼层
回复 5# minzyyl 为什么不行?,把你脚本的参数带上啊。
  1. soure jump dir
复制代码



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP