shell脚本path
① Shell脚本
因为-c的意思是command,所以bash -c后面应该跟一个command。
shell运行脚本的两种方法:
1、bash xx.sh
2、bash -c "cmd string"
使用bash -c需要注意两点:
1、bash -c "cmd string"接的是shell命令字符串,用双引号括起来
2、bash -c "/path/to/file"接的是文件绝对路径,用双引号括起来,并且文件需要可执行权限
参考链接:
1.1、 linux shell -c,【bash】关于shell中 bash -c 执行命令或者可执行文件
1.2、 【bash】关于shell中 bash -c 执行命令或者可执行文件
示例:/usr/libexec/PlistBuddy -c "cmd string"
参考链接: XCode添加自定义Run Script Phase
由于PlistBuddy并不在Mac默认的Path里,所以我们得通过绝对路径来引用这个工具:
参考链接: PlistBuddy简单使用
② shell脚本---定时复制文件至目的文件夹
业务需求:定时从path1中取文件,复制到path2中
主要解释第7行
分3部分:
既然上述命令输出的是一串字符串,则不可避免需要做切割。
对于一行字符串str="aaa,bbb,vvv,ccc"
直接利用${str[@]}就可以获得分割后的列表。那么,如何定义分隔符呢?
IFS=$','
IFS是系统自带的一个变量,储存着分隔符,默认好像是空格。可以自定义
上面脚本中就是定义了IFS为换行符。
脚本后半部分就是依次处理文件,判断目标文件夹是否已有该文件,如果没有,就复制。
项目中源文件夹的文件是每个几分钟会增加一个,相当于上述脚本要每隔一段时间运行一次,以确保源文件夹和目标文件夹里的内容同步。
crontab讲解1
crontab讲解2
③ shell脚本 PATH作用
你用sh sh01.sh运行你的脚本时,系统会fork一个子shell出来,你改变的PATH是子shell的,一旦运行完毕,子shell会退出到当前shell,PATH会被复原。
你可以用. sh01.sh运行脚本,就达到你要的目的了。
④ linux 的shell脚本加path有什么用
首先你确定自己把shell的文件路径加入了PATH变量里面
然后检查一下你的shell脚本的权限,看是否有执行权限即x,如果没有可通过chmod来更改
⑤ 如何在shell脚本中设置环境变量
如何通过shell脚本设置全局的环境变量
-bash-3.00#
env
HZ=100
LC_MONETARY=en_US.ISO8859-1
SHELL=/usr/bin/bash
TERM=ansi
LC_NUMERIC=en_US.ISO8859-1
MAIL=/var/mail/pc
PATH=/usr/sbin:/usr/bin:.
LC_MESSAGES=C
LC_COLLATE=en_US.ISO8859-1
PWD=/export/home/pc
TZ=PRC
SHLVL=1
HOME=/export/home/pc
LOGNAME=pc
LC_CTYPE=en_US.ISO8859-1
LC_TIME=en_US.ISO8859-1
_=/usr/bin/env
如果只想看指定的变量设置,如路径PATH的设置,可以用
"echo
$PATH"或
“
env
|
grep
PATH"或”
env
|
grep
-i
path"来查询。前面的适合知道全名的,后面2种适合只知道部分字段或者部分关键字母(甚至不确定字符大小写)的。
-bash-3.00#
echo
$PATH
/usr/sbin:/usr/bin:.
-bash-3.00#
env
|
grep
PATH
PATH=/usr/sbin:/usr/bin:.
⑥ shell脚本文件路径问题
#!/bin/bash
read-p"请输入一个路径"path1
if[!-d$path1];then
mkdir-p"$path"
else
echo"目录已经存在"
fi
⑦ linux shell PATH路径脚本不懂
这样。linux查询可执行的顺序就是按照path中一个一个的路径来查询的。它会一个一个的查询在一个目录下找不到会往下接找。至到最后一个路径。若是找不到它就会提示你 这个程序不存在。你也可以把一些自己写的程序放在自己的家目录下 ~/bin .这样,每个用户的习惯可能不一样。
⑧ shell脚本: PATH=rt find PATH -type f | xargs grep -il root
PATH是用来指定shell下二进制文件目录的变量,不要在脚本里随意赋值
⑨ linux下编写脚本程序时,PATH的路径是什么意思(那个path是大写的)
PATH是环境变量,shell会从这个变量中包含的所有路径中查找外部命令,例如有个名字叫做abc的可执行文件,该文件的路径在/usr/local/bin目录下,这样当你在终端的shell中直接输入abc命令的话,abc这个程序就可以被执行,而不用输入/usr/local/bin/abc。
另外你可以在终端中键入echo $PATH 也可看到当前这个PATH变量中的内容