为什么我的脚本中的这个基本变量调用失败了?
脚本就在下面,执行后在终端输出的错误在脚本下面。
第8行是第一个sudo命令。
我现在正在终端以root身份执行此脚本。如果我在终端内一次一个地手动执行命令,它的工作正常......
如果有任何见解,我将不胜感激。
#!/bin/bash
echo Enter username
read NAME
echo Enter number
read NUM
sudo (cd /Users/$NAME && tar c .) | (cd /Users/$NUM && tar xf -)
sudo chown -R $NUM:"Domain Users" /Users/$NUM
sudo chmod g+rwx /Users/$NUM
Stephen-Kucker:Desktop root# ./stackoverflowq.txt
Enter username
jsteinberg-c
Enter number
admin
./stackoverflowq.txt: line 8: syntax error near unexpected token `cd'
./stackoverflowq.txt: line 8: `sudo (cd /Users/$NAME && tar c .) | (cd /Users/$NUM && tar xf -)'
答案 0 :(得分:1)
试试这个:
sudo tar -C /Users/$NAME -c . | sudo tar -C /Users/$NUM -xf -
答案 1 :(得分:0)
您需要使用-s
选项将任意shell命令(如显示的管道)传递给具有sudo
的shell:
sudo -s "(cd /Users/$NAME && tar c .) | (cd /Users/$NUM && tar xf -)"