相关疑难解决方法(0)

如何将文件读入shell中的变量?

我想读取一个文件并将其保存在变量中,但我需要保留变量而不是打印出文件.我怎样才能做到这一点?我写过这个剧本,但它不是我需要的:

#!/bin/sh
while read LINE  
do  
  echo $LINE  
done <$1  
echo 11111-----------  
echo $LINE  
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,我可以将文件名作为参数,因此,如果文件包含"aaaa",例如,它会打印出来:

aaaa
11111-----
Run Code Online (Sandbox Code Playgroud)

但这只是将文件打印到屏幕上,我想将其保存到变量中!是否有捷径可寻?

unix shell sh

424
推荐指数
6
解决办法
83万
查看次数

shell脚本可以设置调用shell的环境变量吗?

我正在尝试编写一个shell脚本,在运行时,将设置一些将在调用者的shell中保留的环境变量.

setenv FOO foo
Run Code Online (Sandbox Code Playgroud)

在csh/tcsh中,或

export FOO=foo
Run Code Online (Sandbox Code Playgroud)

在sh/bash中只在脚本执行期间设置它.

我已经知道了

source myscript
Run Code Online (Sandbox Code Playgroud)

将运行脚本的命令而不是启动新的shell,这可能导致设置"调用者"环境.

但这里有一个问题:

我希望这个脚本可以从bash或csh调用.换句话说,我希望任何一个shell的用户都能够运行我的脚本并改变他们的shell环境.所以'source'对我来说不起作用,因为运行csh的用户无法获取bash脚本,而运行bash的用户无法获取csh脚本.

有没有合理的解决方案不需要在脚本上编写和维护两个版本?

bash shell csh tcsh

396
推荐指数
8
解决办法
46万
查看次数

标签 统计

shell ×2

bash ×1

csh ×1

sh ×1

tcsh ×1

unix ×1