ubuntu shell脚本的指令问题 如果说是 declare 命令不能用,那原因是由于你用的不是bash.如果是其他命令(你最好列出来具体的命令名字),要么是由于你没有使用和《鸟哥》里所使用的同样的shell,要么就是你的系统里没有安装对应的软件。比方说,有的命令是shell自带的命令,如declare,let 等,如果你发现不能用,那是由于使用的shell 不同或者版本不同。有的命令不是shell自带命令,而是系统中装的一些工具软件,比如 find,tar,grep 等等,这种类型的命令数量远大于shell自带命令,在ubuntu默认安装中,很可能有一些没有安装,需要你自己去装。所以具体你缺什么命令,不一定是shell的问题,也可能是你没有安装对应软件包。最后,建议你还是用bash,毕竟是最流行的shell,大多数人,大多数教程,都讲得是它,所以不建议你初学时用其他shell,等对linux shell有一定了解后,再换到自己喜欢用的shell会比较合适。
bash与sh的问题 在ubuntu中,sh只是bash的一个链接,执行的程序都是一样的,命令解释器是一样的。但bash xxx.sh和xxx.sh和sh xxx.sh还是有不同的,bash xxx.sh和sh xxx.sh都已经是直接执行命令,脚本程序作为这个命令的参数,不存在可行性权限的问题,而./xxx.sh则必须具有可执行权限,在部分自动化的脚本中出现像./xxx.sh这个的语句可能会出错。然后,三条命令本身的语句不一样,部分脚本程序在执行时喜欢检测一下命令名本身([\"$0\"]),对不同的命令会作出不同的反应,这个是取决与脚本本身的。我没看过楼主的脚本,猜测,可能在xxx.sh这个脚本中有一条语句对命令名进行检测,然后进行条件跳转。if[\"$0\"=\"sh xxx.sh\"]thenfi
bash与sh的问题 今天学习了shell script发现困惑问题树上说bash xxx.sh命令与sh xxx.sh执行效应该样我照搬正确程序运行root身份下发现bash xxx.sh或./xxx.sh能执行通过sh 。