如何在Ubuntu上的bash脚本中分离命令行参数?

时间:2014-04-28 11:47:55

标签: bash ubuntu ssh remote-access

在我的bash脚本中,我想更改名为“test.txt”的特定文件的文件权限,该文件位于:

"/var/www/tomcat7/dir1/test.txt"

我的问题是,如果我给这个文件的完整路径,我想更改所有目录的权限,如“var”,“www”,tomcat7“,”dir1“,最后”test .TXT”。

文件路径通过单独的文本文件作为命令行参数给出,这是我的代码,

setFilePErmission(){
    ssh ppuser@10.101.5.91 "sudo chmod 777 $1"
}

setFilePErmission $1

任何人都可以帮助我吗?谢谢.... :)

1 个答案:

答案 0 :(得分:1)

#!/bin/bash 
setFilePErmission(){  
i=$(echo "$1" | awk -F '/' '{print NF}') 
y=$1 
while [[ $i -gt 1 ]] 
do 
ssh ppuser@10.101.5.91 "sudo chmod 777 $y" 
y=${y%/*} 
(( i-- )) 
done
}

setFilePErmission "your path goes here"

检查这是否适合您。

我仍然怀疑,为什么需要这样的权限..

请确保在运行此类内容时,因为一旦更改权限,除非您不记得每个文件权限,否则很难将它们转换为以前的值。