linux shell脚本换行问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell脚本换行问题相关的知识,希望对你有一定的参考价值。
在shell中执行java -jar命令时带了很多参数,中间有换行,用的是 \ 来换行,然后在另外一个java程序中调用该shell脚本,但是在运行的时候报java: command not found错误,好奇怪,求解答
\\不是换行,而是续行,就是说一行写不下了,下一行继续,而不是一个命令的结束
你说报java: command not found,跟\\没有关系,错误的原因:
你没有装java
path没有设对,echo $PATH看一下java的执行文件在不在其中的一个目录,没有,加之
对的对的,是这个意思,表述错误,但是我的服务器上java肯定是装了的,path也是对的,之前是把项目部署在服务器上可以,在本地远程连linux去执行shell脚本会报这个错,但是昨天2种方式都报这个错了
追答你如果确定环境变量没有问题,那就无解了
echo $JAVA_HOME
echo $PATH
到底返回什么?
但是我单独直接去执行这个shell可以成功运行啊sh start.sh这样是可以的
你怎么执行这个script的?
还有,你的PATH, 有jdk1.6.0_21, 也有jdk1.6.0_23,已经混乱了
我用java调用shell执行的啊,Runtime.getRuntime().exec("sh start.sh");我只装了1.6.0_21,而且我的/home/sandibs/下根本就没有Java这个路径,也不知道哪来的
追答java调用,那你就应该在script里面看环境变量啊,把这两行加在script中调用java之前,
echo $JAVA_HOME
echo $PATH
就当调试,看看输出是什么?
如果是的话,改过来,将这一条命令完整的写在一行里,中间不要按回车,一直写,一直写,你看它到头了自己会到下一行(其实还是在同一行,只是因为桌面显示不下了而显示在下一行)。追问
试过了,也不行,就是感觉特别奇怪
参考技术B java的环境变量配置了么!!!?追问必须配置了啊
shell脚本学习1(Linux脚本攻略)
sudo <command> < arguments> 等价于root权限执行命令
赋予所有用户文件的可执行权限:chmod a+x script.sh
执行脚本:
./script.sh#./表示当前的目录
命令1:echo "welcome to Bash"
命令2:printf "hello world"
区别:printf 不带换行!
example1:
#!/bin/bash
printf "%-5s %-10s %-4s\n" No Name Mark
命令3:查看进程运行时的环境变量:
cat /proc/$PID/environ(PID是进程的ID)
命令4:获取进程的ID
pgrep gedit
12501(gedit的进程的ID)
可以通过以下的命令查看进程的环境变量:
cat /proc/12501/environ/GDM_KEYBOARD_LAYOUT=usGNOME_KEYPING=1560USER=slynuxHOME=/home/slynux
改命令返回一个包含环境变量以及对应变量值的列表
命令5:tr ‘\0‘ ‘\n‘ 替换命令
注意:
var=value是赋值操作,var = value是相等操作,易出错;
例子:
var="value"
echo $var(输出内容,使用$符号)
后者echo ${var}
环境变量是未在当前进程中定义,而从父进程中继承而来的变量;
在PATH中添加新的路径:
export PATH="$PATH:/home/user/bin"
也可以使用:
PATH="$PATH:/home/user/bin"
export PATH
以上是关于linux shell脚本换行问题的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本执行错误 $' ':command not found
Windows 和 Linux 中的换行与回车的区别,Windows下编写的Shell脚本,直接放到linux/unix下执行会报错