小编Kar*_*120的帖子

获取脚本时“无法 cd 到 /home/user”

我有这个脚本:

echo $HOME
cd $HOME
cd /
cd /usr/local/src/
Run Code Online (Sandbox Code Playgroud)

当我像这样运行时

. script.sh
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

/home/user
: No such file or directory
: No such file or directory
: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我正常运行(我#!/bin/bash在第一行之前添加)

sh script.sh
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

: not found.sh: 2: script.sh
/home/user
script.sh: 3: Can't cd to /home/user
script.sh: 4: Can't cd to /
script.sh: 5: Can't cd to /usr/local/src/
Run Code Online (Sandbox Code Playgroud)

脚本$HOME每次都从目录运行。如果我从 shell 一个一个地运行每个命令,它会毫无问题地执行(cd $HOME从内部调用$HOME根本不会改变目录)。

我必须做什么才能使这项工作发挥作用?

bash cd-command shell-script

6
推荐指数
1
解决办法
5万
查看次数

使用 yes 命令死锁

我有一个脚本叫做setup.sh

. install.sh && . tolinux.sh && . startn.sh && . startm.sh
Run Code Online (Sandbox Code Playgroud)

这是install.sh

yes | sudo apt-get update
yes | sudo apt-get install default-jdk
yes | sudo apt-get install expect
sudo apt-get install lftp

cd /usr/local/src/
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/

/usr/bin/expect <<END_SCRIPT
spawn make install
expect "Please enter the login/email*" { send "Username\r" }
expect "Please enter the password for user*" { send "password\r" }
expect "Please enter an update interval*" { send …
Run Code Online (Sandbox Code Playgroud)

apt expect

2
推荐指数
1
解决办法
300
查看次数

标签 统计

apt ×1

bash ×1

cd-command ×1

expect ×1

shell-script ×1