如何解决sh中cd不生效问题?

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 289, 距离下一级还需 211 积分
论坛徽章:0
#! /bin/sh
cd /projects
执行后不能完成命令,请问我该如何写?
家境小康, 积分 1404, 距离下一级还需 596 积分
论坛徽章:0
请教:如何在shell脚本中执行cd命令
脚本本身没问题, 执行脚本的方式要变一下--用source 脚本名 执行.
富甲一方, 积分 49895, 距离下一级还需 105 积分
论坛徽章:33
请教:如何在shell脚本中执行cd命令
楼主怎么知道它没完成命令呢?
家境小康, 积分 1114, 距离下一级还需 886 积分
论坛徽章:1
请教:如何在shell脚本中执行cd命令
sh -x urscript
这样的脚本需要在当前shell里运行:
. urscript
source urscript
丰衣足食, 积分 503, 距离下一级还需 497 积分
论坛徽章:0
请教:如何在shell脚本中执行cd命令
你是不是要在/projects执行什么命令?
cd /command1;command2;
白手起家, 积分 40, 距离下一级还需 160 积分
论坛徽章:0
请教:如何在shell脚本中执行cd命令
需要用source或者.执行,这样会在当前shell环境中执行,如果直接执行,会开启一个子shell,你在子shell中进入了该目录,脚本执行完后会退出子shell回到父shell环境,这样当前目录又会还原成父shell的当前目录的,在后面加一句pwd如:
#! /bin/sh
cd /projects
就可以很清楚的看到,是有进入到该目录,然后脚本执行完成后再执行pwd就会发现不是了。
白手起家, 积分 85, 距离下一级还需 115 积分
论坛徽章:0
& & 在./脚本名.sh状态下cd命令不可用,这个原因找到了吗?是不是因为sh的执行的原因呢!
论坛徽章:51
首先&&chmod a+x 脚本
这样执行也可以。
稍有积蓄, 积分 215, 距离下一级还需 285 积分
论坛徽章:0
你那样执行 是新开了个shell进程 执行cd 执行完后回来原来的shell 他是不能把变量带到你原来的shell环境的~
富足长乐, 积分 5503, 距离下一级还需 2497 积分
论坛徽章:2
。。。。。。LZ难道想执行含CD命令的脚本改变原shell的current directory?
cd不是一个可执行文件,而是shell内部支持的关键字,像if,while一样。因为shell执行命令时,总是新开启一个shell,不可能通过子shell来改变父shell的环境,所以才设计cd这个东西的。
话说,是什么情况不能把事情在一个脚本里做完?
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处Shell脚本cd问题 - 泡芙拓 - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
Shell脚本cd问题
& 09:29:41
/ 个人分类:
在过程中,我们可以通过脚本来提高测试的速度,可是有时会发现运行脚本的一些小问题。最近,用Ubuntu运行脚本时发现无法cd到指定的目录,如:1.sh#!/bin/shcd /home./1.sh运行之后,pwd发现还是在原目录下,并未切换至home目录。该脚本这么简单,不会是脚本问题,那时什么原因呢?我在网上查找,有人说,Ubuntu默认的是dash脚本而非bash脚本,dash的速度较快但是有些在bash上可以运行的脚本在dash上就不行。可以用ls /bin/sh -al ,来查看一下指向的哪种类型,如果是指向dash,我们可以把它换成bash,sudo dpkg-reconfigure dash出现菜单问你是否要dash的时候,选no就可以了。我改了之后问题又来了,还是无法cd,我就无语了。然后又在脚本里加入了一句pwd查看路径,然后运行结果是进入了/home,可是运行结束再pwd就不行了,当时我就纠结了,实际上脚本是正确执行了的,但是我们看到的结果是不对的。后来看了Shell脚本十三问,才明白其中道理。原来在我们执行脚本时,会自动运行一个子脚本去完成里面的指令,然后回到父脚本,所有当我们在脚本执行结束后去pwd,是不行的。那如何让名命令在当前脚本执行呢?可以用source ./1.sh或者../1.sh,这样就可以了。有时一个问题真的可以困扰我们好久,大家交流一下会比较容易解决,分享一下我的问题,呵呵。再补充一下,还是脚本问题。我直接从word里面复制脚本虚拟机里面,是循环的,for do的那种,可是执行的时候总会出现,syntax error: word unexpected (expecting "do"),我就奇怪了,确定我的代码没有错。后来在高手的帮助下,解决了。原来是换行的问题,我们眼睛看到的和机子上自己编译的是不同的,C语言用大是ASC码,换行时/n就ok了,可是linux里面unicore不是的,是/r/n,在我们表面看来没有任何不同,可是运行起来就是错的。所以大家以后注意了,写脚本要在虚拟机里直接写,不要复制哦,呵呵。两天的问题都解决了,好诶!unix,当用cd换目录失败时,怎么不显示错误信息_百度知道
unix,当用cd换目录失败时,怎么不显示错误信息
rt,比如 cd 555,结果是 cd: 555 No such file or directory。有没有办法让这个错误信息不显示呢?
我现在是想,当目录错误(找不到)的时候,echo &Path is invalid&我现在可以print出来这句话,但是是这样子的cd : XXX No such file or directoryPath is invalid怎么才能只让他显示我echo的那个path is invalid谢谢~~
我有更好的答案
错误重定向是一种办法:cd 555 2&null
采纳率:58%
来自团队:
fi3:1; then
echo &Path is invalid&quot.vim cd.sh2.写入
if [ -d $1 ];cd.sh file(屏幕输出path is invalid)6.cp cd.sh /bin 7.alias cd='cd因为cd命令是shell内建的命令(builtin,用type cd可查看),所以你的需要问题用自己写的shell脚本覆盖cd命令。方法.sh5.输入.&#47.让文件可执行 chmod u+x cd
没有这个目录啊, 肯定出错了帮楼主看看?
555, && /dev/null
cd 555 & /dev/null 2&&1
其他2条回答
为您推荐:
其他类似问题
错误信息的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
linux常见问题的解决.doc 53页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
linux常见问题的解决
你可能关注的文档:
··········
··········
1001 修改主机名(陈绪) vi /etc/sysconfig/network,修改HOSTNAME一行为&HOSTNAME=主机名&(没有这行?那就添加这一行吧),然后运行命令& hostname 主机名&。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。 1002 Red Hat Linux启动到文字界面(不启动xwindow)(陈绪) vi /etc/inittab id:x:initdefault: x=3:文本方式 x=5:图形方式 1003 linux的自动升级更新问题(hutuworm,NetDC,陈绪) 对于redhat,在/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。 升级除kernel外的rpm: up2date –u 升级包括kernel在内的rpm: up2date -u –f 最新的redhat和fedora可以使用yum命令或者yumex图形前端来升级更新。 Gentoo升级方法 更新portage tree:??emerge –sync 更新/安装软件包: emerge [软件包名] (如安装vim:??emerge vim) Debian跟别的发行版还是有很大的差别的,用Debian做服务器维护更加方便。Debian下升级软件: apt-get update apt-get upgrade 前提:配置好网络和/etc/apt/sources.list,也可以用apt-setup设置。 1004 windows下看linux分区的软件(陈绪,hutuworm) Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip 现在不少Linux发行版安装时缺省基于LVM建分区,所以explore2fs也与时俱进地开始支持LVM2: /downloads/explore2fs-1.08beta9.zip 1005 mount用法(sakulagi,sxsfxx,aptkevin) fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom iso文件 mount -o loop /abc.iso /mnt/cdrom 软盘 mount /dev/fd0 /mnt/floppy USB闪存 mount /dev/sda1 /mnt/cdrom 在有scsi硬盘的计算机上,如果用上面的命令挂载usb闪存,则会mount到/boot分区。这种情况,应该先用fdisk -l /dev/sd? 来看看到底usb闪存盘是在哪个设备下(通常会是sdb或者sdc)。比如某台机器上,就是在sdc1上面。 所有/etc/fstab内容 mount -a 可以指定文件格式&-t 格式&, 格式可以为vfat, ext2, ext3等. 访问DVD mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom 注意:dvd的格式一般为iso9660或udf之一 1006 在vmware的LINUX中使用本地硬盘的FAT分区(陈绪) 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。 1007.a 删除名为-a的文件(陈绪) rm ./-a rm -- -a??告诉rm这是最后一个选项,参见getopt ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm '{}' \; 1007.b 删除名为\a的文
正在加载中,请稍后...如何在shell脚本中使cd命令生效_百度知道
如何在shell脚本中使cd命令生效
我有更好的答案
cd是基本命令,shell里面是可以用的,你可以用pwd命令进行验证一下
采纳率:66%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 shcd 的文章

 

随机推荐